{"version":3,"file":"static/chunks/pages/[[...slug]]-894ec2b4f5ee96a7.js","mappings":"kGACA,IAAIA,EAAI,EAAQ,OACZC,EAAW,EAAQ,OACnBC,EAAoB,EAAQ,OAC5BC,EAAsB,EAAQ,OAC9BC,EAAmB,EAAQ,OAI/BJ,EAAE,CAAEK,OAAQ,QAASC,OAAO,GAAQ,CAClCC,GAAI,SAAYC,GACd,IAAIC,EAAIR,EAASS,MACbC,EAAMT,EAAkBO,GACxBG,EAAgBT,EAAoBK,GACpCK,EAAID,GAAiB,EAAIA,EAAgBD,EAAMC,EACnD,OAAQC,EAAI,GAAKA,GAAKF,OAAOG,EAAYL,EAAEI,MAI/CT,EAAiB,O,mCClBjB,IAAIJ,EAAI,EAAQ,OACZe,EAAc,EAAQ,MACtBC,EAAyB,EAAQ,OACjCb,EAAsB,EAAQ,OAC9Bc,EAAW,EAAQ,OACnBC,EAAQ,EAAQ,OAEhBC,EAASJ,EAAY,GAAGI,QAQ5BnB,EAAE,CAAEK,OAAQ,SAAUC,OAAO,EAAMc,OANtBF,GAAM,WACjB,MAAsB,WAAf,eAAKX,GAAG,OAKoC,CACnDA,GAAI,SAAYC,GACd,IAAIa,EAAIJ,EAASD,EAAuBN,OACpCC,EAAMU,EAAEC,OACRV,EAAgBT,EAAoBK,GACpCK,EAAID,GAAiB,EAAIA,EAAgBD,EAAMC,EACnD,OAAQC,EAAI,GAAKA,GAAKF,OAAOG,EAAYK,EAAOE,EAAGR,O,yzEClB3CU,EC4IZ,EANkB,CAChBC,WA3IiB,WACjB,MAAO,iwCA2IPC,2BApEiC,WACjC,MAAO,o/BAoEPC,uBAd6B,WAC7B,MAAO,uIC6HT,EARe,CACbC,cAtPoB,WACpB,MAAO,u5CAsPPC,uBArK6B,WAC7B,MAAO,wqCAqKPC,uBArG6B,WAC7B,MAAO,inBAqGPC,sBA9D4B,WAC5B,MAAO,mNA8DPC,aA/CmB,WACnB,MAAO,6qB,wIFxMGR,GAAAA,EAAAA,EAAAA,QAAAA,GAAAA,UAAAA,EAAAA,EAAAA,OAAAA,GAAAA,S,CAAAA,IAAAA,EAAAA,KGJL,IAAMS,EAAS,CACpBC,KAAM,SACNC,MAAO,oBACPC,KAAM,mCACNC,KAAM,SACNC,QAAS,aACTC,aAAc,IAGHC,EAAiB,CAC5BN,KAAM,aACNC,MAAO,8CACPC,KAAM,GACNC,KAAM,SACNC,QAAS,SACTG,QAAS,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAISC,EAAoB,CAC/BR,KAAM,gBACNC,MAAO,kDACPC,KAAM,GACNC,KAAM,SACNC,QAAS,SACTG,QAAS,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAISE,EAAmB,CAC9BT,KAAM,mBACNC,MAAO,0DACPC,KAAM,GACNC,KAAM,SACNC,QAAS,SACTG,QAAS,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,MAISG,EAAc,CACzBV,KAAM,UACNC,MAAO,0BACPC,KAAM,GACNC,KAAM,SACNC,QAAS,SACTG,QAAS,CACP,UACA,QACA,QACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,WAISI,EAAkB,CAC7BX,KAAM,cACNC,MAAO,6BACPC,KAAM,8BACNC,KAAM,SACNC,QAAS,aACTC,aAAc,GACdO,MAAO,KACPL,QAAS,CACP,CACEM,IAAK,QACLC,MAAO,QACPC,KAAM,SAER,CACEF,IAAK,QACLC,MAAO,OACPC,KAAM,QAER,CACEF,IAAK,QACLC,MAAO,QACPC,KAAM,+BAER,CACEF,IAAK,UACLC,MAAO,UACPC,KAAM,+BAER,CACEF,IAAK,UACLC,MAAO,UACPC,KAAM,wBAER,CACEF,IAAK,UACLC,MAAO,UACPC,KAAM,8BAER,CACEF,IAAK,UACLC,MAAO,UACPC,KAAM,+BAKCC,EAAoB,CAC/BhB,KAAM,gBACNC,MAAO,qCACPC,KAAM,yCACNC,KAAM,UACNC,QAAS,SACTC,cAAc,GAMHY,EAAY,CACvBjB,KAAM,QACNC,MAAO,aACPC,KAAM,wBACNC,KAAM,SACNC,QAAS,aACTC,aAAc,IAGHa,EAAkB,CAC7BlB,KAAM,cACNC,MAAO,cACPC,KAAM,iCACNC,KAAM,SACNC,QAAS,aACTC,aAAc,IAGHc,EAAsB,CACjCnB,KAAM,kBACNC,MAAO,mBACPC,KAAM,qBACNC,KAAM,SACNC,QAAS,aACTC,aAAc,kBAGHe,EAAmB,CAC9BpB,KAAM,eACNC,MAAO,gBACPC,KAAM,yDACNC,KAAM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","sources":["webpack://_N_E/./node_modules/core-js/modules/es.array.at.js","webpack://_N_E/./node_modules/core-js/modules/es.string.at-alternative.js","webpack://_N_E/./components/content-blocks/ContentBlockType.ts","webpack://_N_E/./utils/repo/accessory.ts","webpack://_N_E/./utils/repo/dealers.ts","webpack://_N_E/./utils/meta/index.js","webpack://_N_E/./components/organisms/accessories-list/meta.ts","webpack://_N_E/./components/molecules/action-banner-item/meta.ts","webpack://_N_E/./components/molecules/armored-form/meta.ts","webpack://_N_E/./components/molecules/back-to-top/meta.ts","webpack://_N_E/./components/molecules/action-banner/meta.ts","webpack://_N_E/./components/organisms/banner-list-section/meta.ts","webpack://_N_E/./components/molecules/breadcrumb-list/meta.ts","webpack://_N_E/./components/organisms/buttons-section/meta.ts","webpack://_N_E/./components/organisms/section-card/meta.ts","webpack://_N_E/./components/molecules/contact-form/meta.ts","webpack://_N_E/./components/atoms/content-divider/meta.ts","webpack://_N_E/./components/organisms/content-media-section/meta.ts","webpack://_N_E/./components/molecules/car-details-action-card/meta.ts","webpack://_N_E/./components/organisms/dealers-list/meta.ts","webpack://_N_E/./components/molecules/disclaimer/meta.ts","webpack://_N_E/./components/molecules/download-doc-list/meta.ts","webpack://_N_E/./components/molecules/email-dream-car-form/meta.ts","webpack://_N_E/./components/molecules/events-form/meta.ts","webpack://_N_E/./components/organisms/faq-section/meta.ts","webpack://_N_E/./components/organisms/find-dealers/meta.ts","webpack://_N_E/./components/organisms/gallery-download/meta.ts","webpack://_N_E/./components/molecules/iframe-section/meta.ts","webpack://_N_E/./components/molecules/interest-form/meta.ts","webpack://_N_E/./components/organisms/interest-form-manager/meta.ts","webpack://_N_E/./components/molecules/interactive-video-content/meta.ts","webpack://_N_E/./components/molecules/lgpd-form/meta.ts","webpack://_N_E/./utils/repo/service.ts","webpack://_N_E/./components/molecules/maintenance-plan/meta.ts","webpack://_N_E/./components/molecules/media-banner-action/meta.ts","webpack://_N_E/./components/organisms/media-section/meta.ts","webpack://_N_E/./components/atoms/missing-block/meta.ts","webpack://_N_E/./components/molecules/notification/meta.ts","webpack://_N_E/./utils/repo/news.ts","webpack://_N_E/./components/organisms/news-banner/meta.ts","webpack://_N_E/./components/molecules/offers-form/meta.ts","webpack://_N_E/./components/organisms/offers-panel/meta.ts","webpack://_N_E/./components/molecules/action-banner-with-form/meta.ts","webpack://_N_E/./components/molecules/recall-banner-form/meta.ts","webpack://_N_E/./utils/repo/recall.ts","webpack://_N_E/./components/organisms/recall-form/meta.ts","webpack://_N_E/./components/molecules/recall-form-custom/meta.ts","webpack://_N_E/./components/molecules/recover-password-form/meta.ts","webpack://_N_E/./components/molecules/registration-form/meta.ts","webpack://_N_E/./components/molecules/repentance-form/meta.ts","webpack://_N_E/./components/organisms/rich-text-section/meta.ts","webpack://_N_E/./components/organisms/sale-used-form/meta.ts","webpack://_N_E/./components/organisms/search/meta.ts","webpack://_N_E/./components/molecules/secondary-navigation/meta.ts","webpack://_N_E/./components/molecules/service-offers/meta.ts","webpack://_N_E/./components/organisms/simple-banner/meta.ts","webpack://_N_E/./components/organisms/special-sales-form/meta.ts","webpack://_N_E/./components/organisms/tabs-list-buttons/meta.ts","webpack://_N_E/./components/organisms/tabs-wrapper/meta.ts","webpack://_N_E/./components/atoms/wave-divider/meta.ts","webpack://_N_E/./components/molecules/dream-car-form/meta.ts","webpack://_N_E/./components/molecules/simplified-contact-form/meta.ts","webpack://_N_E/./components/organisms/recall/meta.ts","webpack://_N_E/./components/molecules/direct-sales-form/meta.ts","webpack://_N_E/./utils/page/page-builder/index.tsx","webpack://_N_E/./pages/[[...slug]].js","webpack://_N_E/./providers/page/index.js","webpack://_N_E/?ff63"],"sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'Array', proto: true }, {\n at: function at(index) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n }\n});\n\naddToUnscopables('at');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\n\nvar charAt = uncurryThis(''.charAt);\n\nvar FORCED = fails(function () {\n return '𠮷'.at(0) !== '\\uD842';\n});\n\n// `String.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\n$({ target: 'String', proto: true, forced: FORCED }, {\n at: function at(index) {\n var S = toString(requireObjectCoercible(this));\n var len = S.length;\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : charAt(S, k);\n }\n});\n","/**\n * Content Block can have some types defined by\n * this enum.\n */\nexport enum ContentBlockType {\n /**\n * Receive all needed data to hydrate it\n */\n PASSIVE = 1,\n /**\n * Don't need any input data, it tell how to\n * retrieve necessary informations\n */\n ACTIVE,\n}\n","const findByPage = () => {\n return `\n query accessoryByPage($pageId: String!) {\n accessoryByPage(pageId: $pageId) {\n id\n name\n summary\n descriptions\n partNumber\n link\n type\n status\n modelYears(available: true) {\n id\n year\n katashiki\n suffixCode\n defaultInternalColorCode\n vehicleColors {\n price\n color{\n code\n name\n }\n }\n color {\n name\n code\n }\n version {\n id\n name\n vehicle {\n id\n name\n }\n }\n }\n price {\n endValidity\n startValidity\n value\n installment {\n quantity\n value\n }\n }\n category {\n name\n }\n media {\n url\n title\n }\n downloadMedias {\n url,\n title,\n description\n }\n versions(current: true) {\n name\n accessories{\n id\n }\n vehicle {\n id\n }\n }\n }\n }`;\n};\n\nconst getVehicleInfoForAccessory = () => {\n return `\n query getVehicleInfoForAccessory($id: String!) {\n vehicle(id: $id) {\n name\n versions {\n name\n }\n mainVersion {\n name\n modelYear {\n medias {\n tag\n\n media {\n url\n title\n }\n }\n }\n accessories {\n id\n name\n summary\n descriptions\n partNumber\n link\n type\n status\n price {\n endValidity\n startValidity\n value\n installment {\n quantity\n value\n }\n }\n page {\n title\n fullpath\n },\n category {\n name\n }\n media {\n url\n title\n }\n }\n }\n }\n }`;\n};\n\nconst getCategoriesAccessory = () => {\n return `\n query accessoryCategories($locale: String!){\n accessoryCategories(locale: $locale) {\n id\n name\n }\n }\n`;\n};\n\nconst Accessory = {\n findByPage,\n getVehicleInfoForAccessory,\n getCategoriesAccessory\n};\n\nexport default Accessory;\n","const getAllDealers = () => {\n return `\n query delears ($productId: String!) {\n dealers (query: { productId: $productId }) {\n id\n name\n dn\n doc\n companyName\n idDealerTasa\n armored\n branch\n casaCentral\n contactEmail\n salesEmail\n afterSalesEmail\n phone\n whatsapp\n dlnMatriz\n preProdDomain\n urlToyota\n site\n welcome\n showRoomWeekDaysHour\n hfServicesSaturdayHour\n hfServicesWeekDaysHour\n hfShowRoomSaturdayHour\n hfShowRoomSundayHour\n\n dms {\n id\n name\n }\n\n services {\n id\n title\n subtitle\n content {\n\n icon {\n url\n title\n }\n }\n }\n\n dealerProducts{\n attributes {\n socialMedia {\n name\n value\n }\n }\n }\n\n address {\n city\n state\n neighborhood\n complement\n coordLat\n coordLng\n description\n number\n street\n uf\n zipcode\n }\n \n dealerProducts{\n attributes {\n socialMedia {\n name\n value\n }\n }\n }\n }\n }`;\n};\n\nconst getAllDealersProductId = () => {\n return `\n query dealers ($productId: String!) {\n dealers (query: { productId: $productId }) {\n id\n name\n dn\n doc\n addressId\n companyName\n idDealerTasa\n casaCentral\n contactEmail\n phone\n whatsapp\n urlToyota\n site\n welcome\n showRoomWeekDaysHour\n hfServicesSaturdayHour\n hfServicesWeekDaysHour\n hfShowRoomSaturdayHour\n hfShowRoomSundayHour\n dealerProducts {\n productId\n attributes{\n availableForAppointment\n }\n }\n dms {\n id\n name\n }\n services {\n id\n title\n subtitle\n content {\n\n icon {\n url\n title\n }\n }\n }\n addresses {\n mainAddress\n name\n city\n state\n neighborhood\n complement\n coordLat\n coordLng\n description\n number\n street\n uf\n zipcode\n openHour\n }\n }\n }`;\n};\n\nconst getAllDealersEssential = () => {\n return `query dealers ($productId: String!) {\n dealers (query: { productId: $productId }) {\n name\n dn\n dms{\n name\n }\n id\n doc\n companyName\n armored\n branch\n casaCentral\n contactEmail\n salesEmail\n afterSalesEmail\n phone\n whatsapp\n dlnMatriz\n preProdDomain\n urlToyota\n welcome\n address {\n city\n state\n neighborhood\n complement\n coordLat\n coordLng\n description\n number\n street\n uf\n zipcode\n }\n }\n }`;\n};\n\nconst getAllDealersForForms = () => {\n return `query delears ($locale: String!) {\n dealers (locale: $locale) {\n name\n dn\n id\n accessorySalesEmail\n address {\n city\n state\n uf\n }\n }\n }`;\n};\n\nconst findByFilter = () => {\n return `query delears ($locale: String!, $filter: FindDealersInput) {\n dealers (locale: $locale, query: $filter) {\n name\n id\n doc\n companyName\n armored\n branch\n casaCentral\n contactEmail\n dn\n salesEmail\n afterSalesEmail\n phone\n whatsapp\n dlnMatriz\n preProdDomain\n urlToyota\n welcome\n services{\n id\n title\n subtitle\n }\n address {\n city\n state\n neighborhood\n complement\n coordLat\n coordLng\n description\n number\n street\n uf\n zipcode\n }\n }\n }`;\n};\n\nconst Dealer = {\n getAllDealers,\n getAllDealersProductId,\n getAllDealersEssential,\n getAllDealersForForms,\n findByFilter\n};\n\nexport default Dealer;\n","export const anchor = {\n name: 'anchor',\n label: 'Navigation Anchor',\n help: 'Enter the navigation for anchor.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const spacingTopMeta = {\n name: 'spacingTop',\n label: 'The padding space at the top of the section',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n};\n\nexport const spacingBottomMeta = {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n};\n\nexport const spacingTopBottom = {\n name: 'spacingTopBottom',\n label: 'The padding space at the top and bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n};\n\nexport const bgColorMeta = {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'white',\n 'black',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'gray-7',\n 'blue-1',\n 'blue-2'\n ]\n};\n\nexport const buttonColorMeta = {\n name: 'buttonColor',\n label: 'Select header button color',\n help: 'Set the header button color',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null,\n options: [\n {\n key: 'light',\n value: 'light',\n text: 'White'\n },\n {\n key: 'light',\n value: 'dark',\n text: 'Dark'\n },\n {\n key: 'ghost',\n value: 'ghost',\n text: 'Transparent with white font'\n },\n {\n key: 'ghost-2',\n value: 'ghost-2',\n text: 'Transparent with black font'\n },\n {\n key: 'ghost-3',\n value: 'ghost-3',\n text: 'Grey with white font'\n },\n {\n key: 'ghost-4',\n value: 'ghost-4',\n text: 'Light blue with white font'\n },\n {\n key: 'ghost-5',\n value: 'ghost-5',\n text: 'Dark blue with white font'\n }\n ]\n};\n\nexport const centerContentMeta = {\n name: 'centerContent',\n label: 'Center the content of the section?',\n help: 'Center all elements inside the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n};\n\n/**\n * FORM\n */\nexport const formTitle = {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formDescription = {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formAttractingMedia = {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'SITE MONTADORA'\n};\n\nexport const formTitleSuccess = {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formContentSuccess = {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formLinkSuccess = {\n name: 'linkSuccess',\n label: 'Link success',\n help: 'The link used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formLinkTitleSuccess = {\n name: 'linkTitleSuccess',\n label: 'Link title success',\n help: 'The title of the link used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formTitleError = {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formContentError = {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const formHeaderSpacing = {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n};\n\nexport const kindOfContent = {\n name: 'kindOfContent',\n label: 'Kind of Content',\n help: 'A field to identify the section to which each return belongs',\n type: 'text',\n control: 'input:text',\n defaultValue: ''\n};\n\nexport const autoPlay = {\n name: 'autoPlay',\n label: 'Video autoplay (Use together with the \"Video muted\" option to work)',\n help: 'This option enables video to be played automatically when the page is loaded.',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n};\n\nexport const muted = {\n name: 'muted',\n label: 'Video muted',\n help: 'This option makes the video have no sound.',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n};\n\nexport const loop = {\n name: 'loop',\n label: 'Video loop',\n help: 'This option makes the video always play.',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n};\n\nexport const controls = {\n name: 'controls',\n label: 'User video controls',\n help: 'This option displays the video controls.',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n};\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Accessory from 'utils/repo/accessory';\nimport VehicleQuery from 'utils/repo/vehicle';\n\nclass AccessoriesList implements ContentBlock {\n label = 'Car Accessories List';\n\n component = 'AccessoriesList';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'bgColor',\n label: 'Cor de fundo',\n help: 'Cor de fundo para a sessão',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'hidden title attr',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Disclaimer',\n help: 'Rich text content',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n }\n ];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const content = contents[0];\n\n const models = (await dataFetcher(VehicleQuery.getAllVehicles(), { locale: extra?.context?.locale }))?.data\n ?.vehicles;\n\n const filteredModels = models?.reduce((acc, model) => {\n model.versions = model.versions?.filter((version) => version.status);\n return [...acc, model];\n }, []);\n\n const categoriesModels = (\n await dataFetcher(VehicleQuery.getVehiclesByCategory(), { locale: extra?.context?.locale })\n )?.data?.vehicleCategories;\n\n const categories = (await dataFetcher(Accessory.getCategoriesAccessory(), { locale: extra?.context?.locale }))?.data\n ?.accessoryCategories;\n return {\n models: filteredModels,\n categoriesModels: categoriesModels,\n categories: categories,\n disclaimer: content.description || null,\n locale: extra?.context?.locale || 'pt-BR'\n };\n }\n}\n\nexport { AccessoriesList };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass ActionBannerItem implements ContentBlock {\n label = 'Action Banner Item';\n\n component = 'ActionBannerItem';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'variant',\n label: 'Banner layout variant',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n {\n key: '2',\n value: '2',\n text: 'Banner stays inside the page container'\n }\n ],\n defaultValue: null\n },\n {\n name: 'titleOnly',\n label: 'Align the text at the bottom if the banner',\n help: '',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n },\n {\n name: 'removeMask',\n label: 'Remove the background mask of the banner',\n help: '',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n },\n {\n name: 'containerSize',\n label: 'The size of the container',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'small',\n 'medium'\n ]\n },\n {\n name: 'marginTop',\n label: 'The margin space at the top of the banner ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'marginBottom',\n label: 'The margin space at the bottom of the banner ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'This field accepts a maximum of 95 characters',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: { maxLength: '95' }\n },\n {\n name: 'description',\n label: 'Content',\n help: 'This field accepts a maximum of 120 characters',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: { maxLength: '120' }\n },\n {\n name: 'media',\n label: 'Banner desktop image',\n help: 'Set the banner desktop image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'mediaMob',\n label: 'Banner mobile image',\n help: 'Set the banner mobile image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n return {\n titleOnly: extra?.settings?.titleOnly,\n removeMask: extra?.settings?.removeMask,\n containerSize: extra?.settings?.containerSize,\n title: content?.title || null,\n description: content?.description || null,\n bannerImage: {\n desktop: content?.media?.url || null,\n mobile: content?.mediaMob?.url || null\n },\n cta: content?.callToActions?.[0]?.label\n ? {\n text: content?.callToActions?.[0]?.label || null,\n action: content?.callToActions?.[0]?.target || null\n }\n : null,\n link: content?.callToActions?.[1]?.label\n ? {\n label: content?.callToActions?.[1]?.label || null,\n url: content?.callToActions?.[1]?.target || null\n }\n : null\n };\n }\n}\n\nexport { ActionBannerItem };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\nimport Vehicle from 'utils/repo/vehicle';\n\nclass ArmoredForm implements ContentBlock {\n label = 'Armored Form';\n\n component = 'ArmoredForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'site-montadora'\n },\n {\n name: 'allowedModels',\n label: 'Allowed Models',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'headerSpacingTop',\n label: 'Header spacing at the Top',\n help: 'It is the spacing at the top between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n },\n {\n name: 'headerSpacingBotton',\n label: 'Header spacing at the bottom',\n help: 'It is the spacing at the bottom between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n const vehiclesByModels = (await dataFetcher(Vehicle.getAllVehicles(), { locale: locale }))?.data?.vehicles || [];\n\n const dealersByLocation =\n (await dataFetcher(Dealers.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n const allowedModels = extra?.settings?.allowedModels || '';\n let modelSet = [];\n if (allowedModels.length > 0) {\n modelSet = allowedModels.split(',').map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n const models = [];\n for (const model of vehiclesByModels) {\n if (modelSet.length > 0 && !modelSet.includes(`${model.name}`.trim().toLocaleLowerCase())) {\n continue;\n }\n\n models.push({\n name: model.name || '',\n armored: model?.mainVersion?.armoured || null,\n vehicleExternalId: model?.vehicleExternalId || '',\n version: model?.mainVersion?.name || '',\n prodYear: model?.mainVersion?.modelYear?.year || '',\n katashiki: model?.mainVersion?.modelYear?.katashiki || '',\n suffixCode: model?.mainVersion?.modelYear?.suffixCode || '',\n internalColor: {\n name: model?.mainVersion?.modelYear?.defaultInternalColorCode || '',\n code: model?.mainVersion?.modelYear?.defaultInternalColorCode || ''\n },\n externalColor: {\n name: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.name || '',\n code: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.code || ''\n }\n });\n }\n\n return {\n locale: String(locale).toLowerCase(),\n models: models,\n dealers: dealersByLocation,\n title: extra?.settings?.title,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n description: extra?.settings?.description,\n headerSpacingTop: extra?.settings?.headerSpacingTop || '0',\n headerSpacingBotton: extra?.settings?.headerSpacingBotton || '0',\n attractingMedia: extra?.settings?.attractingMedia || ''\n };\n }\n}\n\nexport { ArmoredForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass BackToTop implements ContentBlock {\n label = 'Back to top';\n\n component = 'BackToTop';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'bgColor',\n label: 'Cor de fundo',\n help: 'Cor de fundo para a sessão',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {};\n }\n}\n\nexport { BackToTop };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass BannerCarousel implements ContentBlock {\n label = 'Banner Carousel';\n\n component = 'ActionBanner';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'autoplay',\n label: 'Autoplay',\n help: 'Add autoplay to banner carousel',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'This field accepts a maximum of 95 characters',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: { maxLength: '95' }\n },\n {\n name: 'description',\n label: 'Content',\n help: 'This field accepts a maximum of 120 characters',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: { maxLength: '120' }\n },\n {\n name: 'media',\n label: 'Banner desktop image',\n help: 'Set the desktop banner image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'mediaMob',\n label: 'Banner mobile image',\n help: 'Set the mobile banner image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {\n autoplay: extra?.settings?.autoplay,\n sliderData: contents?.map((content) => {\n if (!content?.media) {\n throw Error(\"Content 'media' are required\");\n }\n\n return {\n title: content?.title || null,\n description: content?.description || null,\n bannerImage: {\n desktop: content?.media?.url || null,\n mobile: content?.mediaMob?.url || null\n },\n cta: content?.callToActions?.[0]?.label\n ? {\n text: content?.callToActions?.[0]?.label || null,\n action: content?.callToActions?.[0]?.target || null\n }\n : null,\n link: content?.callToActions?.[1]?.label\n ? {\n label: content?.callToActions?.[1]?.label || null,\n url: content?.callToActions?.[1]?.target || null\n }\n : null\n };\n })\n };\n }\n}\n\nexport { BannerCarousel };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n spacingTopMeta,\n spacingBottomMeta,\n bgColorMeta,\n kindOfContent,\n autoPlay,\n muted,\n loop,\n controls\n} from 'utils/meta';\n\nclass BannerListSection implements ContentBlock {\n label = 'Banner list Section';\n\n component = 'BannerListSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'showTitle',\n label: 'Show section title',\n help: 'Will show the section title in the top of the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n autoPlay,\n muted,\n loop,\n controls,\n {\n name: 'contentLayoutType',\n label: 'The layout type of the text content',\n help: '',\n type: 'String',\n control: 'select',\n options: ['default', 'type-2']\n },\n {\n name: 'layoutType',\n label: 'The layout type',\n help: 'Different layouts for the list',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n '2',\n '4'\n ]\n },\n spacingTopMeta,\n spacingBottomMeta,\n bgColorMeta,\n kindOfContent\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the banner title',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The text description of the banner',\n type: 'string',\n control: 'editor',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Banner image',\n help: 'Set the banner image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {\n sectionTitle: extra?.section?.name,\n showTitle: extra?.settings?.showTitle,\n bgColor: extra?.settings?.bgColor,\n layoutType: extra?.settings?.layoutType,\n\n banners: contents.map((content) => {\n return {\n title: content?.title,\n description: content?.description,\n media: content?.media\n ? {\n type: content?.media?.mediaType?.title,\n url: content?.media?.url,\n alt: content?.media?.description\n }\n : null,\n contentLayoutType: extra?.settings?.contentLayoutType,\n cta: content?.callToActions?.[0]?.target\n ? {\n url: content?.callToActions?.[0]?.target || null,\n text: content?.callToActions?.[0]?.label || null\n }\n : null\n };\n })\n };\n }\n}\n\nexport { BannerListSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass BreadcrumbList implements ContentBlock {\n label = 'Breadcrumb List';\n\n component = 'BreadcrumbList';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any): Promise {\n const locale = extra?.context?.locale;\n const linkLabel =\n extra?.context?.i18nMessages?.main_navigation?.previous_page || locale === 'pt-BR'\n ? 'Voltar a página anterior'\n : 'Volver a la página anterior';\n const link = extra?.context?.params?.breadcrumb?.at?.(-2) || '/';\n const breadcrumbList = extra?.context?.params?.breadcrumb;\n\n return {\n linkLabel: linkLabel,\n link: link,\n breadcrumbList: breadcrumbList\n };\n }\n}\n\nexport { BreadcrumbList };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass ButtonsSection implements ContentBlock {\n label = 'Buttons';\n\n component = 'ButtonsSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2', 'gray-3', 'gray-4', 'gray-5', 'gray-6',\n 'black'\n ],\n defaultValue: 'default'\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0', '1', '2', '3', '4', '5', '6', '7'\n ],\n defaultValue: '2'\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0', '1', '2', '3', '4', '5', '6', '7'\n ],\n defaultValue: '2'\n },\n {\n name: 'listAlignment',\n label: 'Alignment of the list of buttons',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'left', 'center'\n ],\n defaultValue: 'left'\n },\n {\n name: 'buttonColor',\n label: 'Button color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default', 'light', 'dark', 'ghost', 'ghost-2'\n ],\n defaultValue: 'default'\n },\n {\n name: 'buttonSize',\n label: 'Button size',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default', 'large'\n ],\n defaultValue: 'default'\n },\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'The title of the content',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link title',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n\n const content = contents[0];\n\n if (!content?.title) {\n throw Error(\"Content 'title' are required\");\n }\n\n const buttonsList = [];\n const pagePath = extra?.context?.page?.fullpath;\n\n content?.callToActions?.map(action => {\n buttonsList.push({\n link: action.target || undefined,\n linkLabel: action.label || undefined\n });\n });\n\n return { buttonsList, pagePath };\n\n }\n}\n\nexport { ButtonsSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nimport {\n anchor,\n spacingTopMeta,\n spacingBottomMeta,\n bgColorMeta,\n buttonColorMeta,\n centerContentMeta,\n kindOfContent,\n autoPlay,\n muted,\n loop,\n controls\n} from 'utils/meta';\n\nclass CardsList implements ContentBlock {\n label = 'Card List';\n\n component = 'SectionCard';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'showTitle',\n label: 'Show section title',\n help: 'Will show the section title in the top of the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n },\n {\n name: 'isUppercase',\n label: 'Title of the cards is uppercase?',\n help: 'Display the Title of the cards in uppercase',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true,\n props: null\n },\n {\n name: 'isHorizontal',\n label: 'Landscape?',\n help: 'Display the Card in landscape mode',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n centerContentMeta,\n {\n name: 'removeCarousel',\n label: 'Remove the Carousel?',\n help: 'Remove carousel from card list',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n autoPlay,\n muted,\n loop,\n controls,\n {\n name: 'variant',\n label: 'The number of collumns the layout will be show',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'type-2',\n 'type-3'\n ]\n },\n spacingTopMeta,\n spacingBottomMeta,\n bgColorMeta,\n {\n name: 'callToActionLabel',\n label: 'Button title',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActionTarget',\n label: 'Button target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n buttonColorMeta,\n kindOfContent\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the card title',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The content of the card',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link title',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Image',\n help: 'Set an image to the card',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {\n title: extra?.section?.name,\n description: extra?.section?.description,\n settings: extra?.settings,\n buttonColor: extra?.settings?.buttonColor,\n callToAction: extra?.settings?.callToActionLabel\n ? {\n label: extra?.settings?.callToActionLabel,\n target: extra?.settings?.callToActionTarget\n }\n : null,\n cardsData: contents.map((content) => {\n if (!content?.title) {\n throw Error(\"Content 'title' are required\");\n }\n\n return {\n title: content?.title.trim().length > 0 ? content?.title?.trim() : undefined,\n isUppercase: extra?.settings?.isUppercase || false,\n content: content?.description,\n media: content?.media\n ? {\n type: content?.media?.mediaType?.title,\n url: content?.media?.url,\n alt: content?.media?.description\n }\n : null,\n link: content?.callToActions?.[0]?.target || undefined,\n linkLabel: content?.callToActions?.[0]?.label || undefined,\n links: content?.callToActions.map((data) => {\n return {\n link: data.target,\n linkLabel: data.label\n };\n })\n };\n })\n };\n }\n}\n\nexport { CardsList };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Vehicle from 'utils/repo/vehicle';\nimport Dealers from 'utils/repo/dealers';\n\n/**\n * Extracts a unique list of states from an array of dealers.\n *\n * @see utils/forms - Duplicated from utils because of limitation on current Rollup configuration\n * @param {Array} dealers - Array of dealers with address information.\n * @returns {Array} - A sorted array of unique states.\n */\nexport function getStatesFromDealers(dealers) {\n if (!Array.isArray(dealers)) {\n return [];\n }\n\n const resultStates = dealers\n .flatMap((dealer) => (dealer?.address?.state ? [dealer.address.state.toUpperCase()] : []))\n .filter((state) => state && state.trim() !== '')\n .sort();\n return [...new Set(resultStates)];\n}\n\nclass ContactForm implements ContentBlock {\n label = 'Contact Form TDV';\n\n component = 'ContactForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'contactFormType',\n label: 'Contact Form Type (required)',\n help: 'Select the type of contact form you are using. This helps in routing the form data appropriately.',\n type: 'String',\n required: true,\n options: [\n 'Presupuesto',\n 'Atención al cliente',\n 'Recall'\n ],\n defaultValue: 'Presupuesto',\n control: 'select'\n },\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n const models = [];\n\n const vehiclesByModels = (await dataFetcher(Vehicle.getAllVehicles(), { locale: locale }))?.data?.vehicles || [];\n\n const dealersByLocation =\n (await dataFetcher(Dealers?.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n for (const model of vehiclesByModels) {\n models.push({\n name: model.name || '',\n vehicleExternalId: model?.vehicleExternalId || '',\n\n mainVersionName: model?.mainVersion?.name || '',\n mainVersionCode: model?.mainVersion?.modelYear?.clientVehicleId || '',\n\n mainVersionExternalColor: {\n name: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.name || '',\n code: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.code || ''\n },\n\n versions: model?.versions || []\n });\n }\n\n const states = getStatesFromDealers(dealersByLocation);\n\n return {\n locale: String(locale).toLowerCase(),\n title: extra?.settings?.title,\n description: extra?.settings?.description,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n headerSpacing: extra?.settings?.headerSpacing || '0',\n contactFormType: extra?.settings?.contactFormType,\n models: models,\n dealers: dealersByLocation,\n states: states\n };\n }\n}\n\nexport { ContactForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nclass ContentDivider implements ContentBlock {\n label = 'Line Break';\n\n component = 'ContentDivider';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n {\n name: 'size',\n label: 'Line size',\n help: 'Horizontal line break',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'tiny',\n 'small'\n ]\n },\n {\n name: 'fullWidth',\n label: 'The line will be a full width content?',\n help: '',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n },\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n },\n {\n name: 'spacing',\n label: 'Spacing',\n help: 'Horizontal line padding spacing',\n type: 'String',\n control: 'select',\n options: [\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {};\n }\n}\n\nexport { ContentDivider };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor, bgColorMeta, spacingTopMeta, spacingBottomMeta } from 'utils/meta';\n\nclass ContentMediaSection implements ContentBlock {\n label = 'Content Media Section';\n\n component = 'ContentMediaSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n bgColorMeta,\n spacingTopMeta,\n spacingBottomMeta\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the section title',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Media related to content',\n help: 'Set the media related to content',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const { title } = contents[0];\n const mediaList = contents.map(({ media }) => media);\n const featuredMedia = mediaList.shift();\n\n return {\n featuredMedia,\n mediaList,\n title\n };\n }\n}\n\nexport { ContentMediaSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nclass CarDetailsActionCard implements ContentBlock {\n label = 'Car Details Action Card';\n\n component = 'CarDetailsActionCard';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [];\n\n properties = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {};\n }\n}\n\nexport { CarDetailsActionCard };\n","import Dealer from 'utils/repo/dealers';\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass DealersList implements ContentBlock {\n label = 'All dealers list';\n\n component = 'DealersList';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const productId = extra?.context?.productId;\n\n if (!productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealers = (await dataFetcher(Dealer.getAllDealers(), { productId: productId }))?.data?.dealers;\n\n return {\n dealers: dealers || [],\n locale: extra?.context?.locale\n };\n }\n}\n\nexport { DealersList };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass Disclaimer implements ContentBlock {\n label = 'Disclaimer';\n\n component = 'Disclaimer';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'The title of the content',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The content of the item',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Image',\n help: '',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n return {\n editorContent: content?.description,\n photoList: [\n {\n type: content?.media?.mediaType?.title,\n url: content?.media?.url,\n alt: content?.media?.description\n }\n ]\n };\n }\n}\n\nexport { Disclaimer };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass DownloadDocList implements ContentBlock {\n label = 'Download Doc List';\n\n component = 'DownloadDocList';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'showTitle',\n label: 'Show section title',\n help: 'Will show the section title in the top of the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'The title of the content',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The content of the item',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter (contents: any[], extra: any): Promise {\n\n return {\n title: extra?.section?.name,\n downloadDocList:\n contents.map(content => {\n\n return {\n title: content?.title,\n text: content?.description,\n linkUrl: content?.callToActions?.[0]?.target || null,\n value: content?.callToActions?.[0]?.label || null,\n color: 'white',\n showTitle: extra?.showTitle?.settings\n };\n\n })\n };\n\n }\n\n}\n\nexport { DownloadDocList };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nimport {\n anchor,\n formAttractingMedia,\n formContentError,\n formContentSuccess,\n formDescription,\n formHeaderSpacing,\n formTitle,\n formTitleError,\n formTitleSuccess\n} from 'utils/meta';\n\nclass EmailDreamCarForm implements ContentBlock {\n label = 'E-mail DreamCar Form';\n\n component = 'EmailDreamCarForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'selectedContest',\n label: 'Selected Contest (Required)',\n help: 'Selected Contest (Required)',\n type: 'picker',\n src: 'Contests',\n control: 'input:text',\n required: true,\n defaultValue: ''\n },\n formTitle,\n formDescription,\n formAttractingMedia,\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n formHeaderSpacing,\n {\n name: 'registrationLink',\n label: 'Link to New Registration',\n help: 'The link utilized in the success response modal of the submitted form. It will be used to redirect the user to initiate a new registration.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'registrationLinkLabel',\n label: 'Link Title for Success',\n help: 'The title of the link used in the success response modal of the submitted form. This text will appear as the label of the link.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const settings = extra?.settings;\n const locale = extra?.context?.locale;\n\n return {\n contestId: settings?.selectedContest || null,\n registrationLink: settings?.registrationLink,\n registrationLinkLabel: settings?.registrationLinkLabel,\n locale: String(locale).toLowerCase(),\n title: settings?.title,\n titleSuccess: settings?.titleSuccess,\n contentSuccess: settings?.contentSuccess,\n titleError: settings?.titleError,\n contentError: settings?.contentError,\n description: settings?.description,\n headerSpacing: settings?.headerSpacing || '0',\n attractingMedia: settings?.attractingMedia || ''\n };\n }\n}\n\nexport { EmailDreamCarForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass EventsForm implements ContentBlock {\n label = 'Events Form';\n\n component = 'EventsForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'selectedEvent',\n label: 'Selected Event (Required)',\n help: 'Selected Event (Required)',\n type: 'picker',\n src: 'Events',\n control: 'input:text',\n required: true,\n defaultValue: ''\n },\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'SITE MONTADORA'\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n return {\n locale: String(locale).toLowerCase(),\n selectedEvent: extra?.settings?.selectedEvent || null,\n title: extra?.settings?.title,\n description: extra?.settings?.description,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n attractingMedia: extra?.settings?.attractingMedia || '',\n spacingBottom: extra?.settings?.spacingBottom,\n spacingTop: extra?.settings?.spacingTop\n };\n }\n}\n\nexport { EventsForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor, bgColorMeta, spacingBottomMeta, spacingTopMeta } from 'utils/meta';\n\nclass FaqSection implements ContentBlock {\n label = 'FAQ';\n\n component = 'FaqSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'showTitle',\n label: 'Show section title',\n help: 'Will show the section title in the top of the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n },\n {\n name: 'invertArrow',\n label: 'Invert the button arrow',\n help: 'Invert the position of the arrow',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n {\n name: 'type',\n label: 'Layout type',\n help: 'The layout type of the list',\n type: 'String',\n control: 'select',\n options: ['default', '2']\n },\n {\n name: 'sectionWidth',\n label: 'Section Width',\n help: 'The width of the faq list',\n type: 'String',\n control: 'select',\n options: ['default', 'full-width']\n },\n bgColorMeta,\n spacingTopMeta,\n spacingBottomMeta\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'The title of the content',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The content of the item',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {\n sectionTitle: extra?.section?.name,\n showTitle: extra?.settings?.showTitle,\n bgColor: extra?.settings?.bgColor,\n faqContent: {\n items: contents.map((content) => {\n return {\n title: content?.title,\n content: content?.description\n };\n })\n }\n };\n }\n}\n\nexport { FaqSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealer from 'utils/repo/dealers';\n\nclass FindDealers implements ContentBlock {\n label = 'Dealers list';\n\n component = 'FindDealers';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title Dealers list',\n help: 'Enter the title for the Dealers list displayed on the screen',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'bgColor',\n label: 'Container Background color',\n help: 'The container Background color',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const productId = extra?.context?.productId;\n\n if (!productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation = (await dataFetcher(Dealer.getAllDealers(), { productId: productId }))?.data?.dealers;\n\n if (!dealersByLocation) {\n throw new Error('No dealers were found');\n }\n\n const dealers = [];\n\n dealersByLocation.forEach((item) => {\n if (item?.address?.coordLat && item?.address?.coordLng) {\n dealers.push({\n position: {\n lat: parseFloat(item.address.coordLat),\n lng: item.address.coordLng\n },\n ...item\n });\n }\n });\n\n const listStates = [...new Set(dealers.map((state) => state.address.state))].sort();\n\n return {\n dealers: dealers,\n title: extra?.settings?.title || '',\n listStates: listStates,\n locale: extra?.context?.locale || 'pt-BR'\n };\n }\n}\n\nexport { FindDealers };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor, spacingTopMeta, spacingBottomMeta } from 'utils/meta';\n\nclass GalleryDownload implements ContentBlock {\n label = 'Gallery Download';\n\n component = 'GalleryDownload';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n {\n name: 'title',\n label: 'Gallery title',\n help: 'Title to be displayed in the gallery component',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n anchor,\n spacingTopMeta,\n spacingBottomMeta\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the image title',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Lower resolution',\n help: 'Set a low-resolution image for the gallery',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n required: true,\n props: null\n },\n {\n name: 'mediaMob',\n label: 'Higher resolution',\n help: 'Set a high-resolution image for the gallery',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n contents.forEach((content) => {\n if (!content.media) {\n throw Error('A propriedade \"media\" é obrigatória.');\n }\n });\n\n return {\n title: extra?.settings.title,\n galleryData: contents.map((content) => {\n return {\n url: content?.media?.url,\n urlHighResolution: content?.mediaMob?.url\n };\n })\n };\n }\n}\n\nexport { GalleryDownload };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass IframeSection implements ContentBlock {\n label = 'Iframe';\n\n component = 'IframeSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Page Title',\n help: 'The of embeded page',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'url',\n label: 'Page URL',\n help: 'Full address of page',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {\n title: extra?.settings?.title,\n url: extra?.settings?.url,\n };\n }\n}\n\nexport { IframeSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\nimport Vehicle from 'utils/repo/vehicle';\n\nclass InterestForm implements ContentBlock {\n label = 'Interest Form';\n\n component = 'InterestForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'SITE MONTADORA'\n },\n {\n name: 'comments',\n label: 'Comments',\n help: 'Extra information for target',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'allowedModels',\n label: 'Allowed Models',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'allowedDealers',\n label: 'Allowed Dealers',\n help: 'List of allowed dialers to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const vehiclesByModels =\n (await dataFetcher(await Vehicle.getAllVehicles(), { locale: locale }))?.data?.vehicles || [];\n\n const dealersByLocation =\n (await dataFetcher(await Dealers?.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n const allowedModels = extra?.settings?.allowedModels || '';\n const allowedDealers = extra?.settings?.allowedDealers || '';\n\n let modelSet = [];\n let dealerSet = [];\n\n if (allowedModels.length > 0) {\n modelSet = allowedModels.split(',').map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n if (allowedDealers.length > 0) {\n dealerSet = allowedDealers.split(',').map((dealer) => String(dealer).trim().toLocaleLowerCase());\n }\n\n const models = [];\n const dealers = [];\n\n for (const model of vehiclesByModels) {\n if (modelSet.length > 0 && !modelSet.includes(`${model.name}`.trim().toLocaleLowerCase())) {\n continue;\n }\n models.push({\n name: model.name || '',\n vehicleExternalId: model?.vehicleExternalId || '',\n version: model?.mainVersion?.name || '',\n prodYear: model?.mainVersion?.modelYear?.year || '',\n katashiki: model?.mainVersion?.modelYear?.katashiki || '',\n suffixCode: model?.mainVersion?.modelYear?.suffixCode || '',\n price: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.price,\n internalColor: {\n name: model?.mainVersion?.modelYear?.defaultInternalColorCode || '',\n code: model?.mainVersion?.modelYear?.defaultInternalColorCode || ''\n },\n externalColor: {\n name: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.name || '',\n code: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.code || ''\n }\n });\n }\n\n for (const dealer of dealersByLocation) {\n if (dealerSet.length > 0 && !dealerSet.includes(`${dealer.name}`.trim().toLocaleLowerCase())) {\n continue;\n }\n dealers.push(dealer);\n }\n\n return {\n locale: String(locale).toLowerCase(),\n models: models,\n dealers: dealers,\n title: extra?.settings?.title,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n description: extra?.settings?.description,\n headerSpacing: extra?.settings?.headerSpacing || '0',\n attractingMedia: extra?.settings?.attractingMedia || '',\n comments: extra?.settings?.comments || ''\n };\n }\n}\n\nexport { InterestForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\nimport Vehicle from 'utils/repo/vehicle';\n\nclass InterestFormManager implements ContentBlock {\n label = 'Interest Form Manager';\n\n component = 'InterestFormManager';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'SITE MONTADORA'\n },\n {\n name: 'comments',\n label: 'Comments',\n help: 'Extra information for target',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'allowedModels',\n label: 'Allowed Models',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n const vehiclesByModels =\n (await dataFetcher(await Vehicle.getAllVehicles(), { locale: locale }))?.data?.vehicles || [];\n const dealersByLocation =\n (await dataFetcher(await Dealers?.getAllDealersForForms(), { locale: locale }))?.data?.dealers || [];\n\n const allowedModels = extra?.settings?.allowedModels || '';\n let modelSet = [];\n if (allowedModels.length > 0) {\n modelSet = allowedModels.split(',').map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n const models = [];\n for (const model of vehiclesByModels) {\n if (modelSet.length > 0 && !modelSet.includes(`${model.name}`.trim().toLocaleLowerCase())) {\n continue;\n }\n\n models.push({\n name: model.name || '',\n vehicleExternalId: model?.vehicleExternalId || '',\n version: model?.mainVersion?.name || '',\n prodYear: model?.mainVersion?.modelYear?.year || '',\n katashiki: model?.mainVersion?.modelYear?.katashiki || '',\n suffixCode: model?.mainVersion?.modelYear?.suffixCode || '',\n internalColor: {\n name: model?.mainVersion?.modelYear?.defaultInternalColorCode || '',\n code: model?.mainVersion?.modelYear?.defaultInternalColorCode || ''\n },\n externalColor: {\n name: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.name || '',\n code: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.code || ''\n }\n });\n }\n\n return {\n locale: String(locale).toLowerCase(),\n models: models,\n dealers: dealersByLocation,\n title: extra?.settings?.title,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n description: extra?.settings?.description,\n headerSpacing: extra?.settings?.headerSpacing || '0',\n attractingMedia: extra?.settings?.attractingMedia || '',\n comments: extra?.settings?.comments || ''\n };\n }\n}\n\nexport { InterestFormManager };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nimport { anchor, spacingTopMeta, spacingBottomMeta, bgColorMeta, buttonColorMeta } from 'utils/meta';\n\nclass InteractiveVideoContent implements ContentBlock {\n label = 'Interactive Video Content';\n\n component = 'InteractiveVideoContent';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n bgColorMeta,\n buttonColorMeta,\n {\n name: 'buttonLabel',\n label: 'Button label',\n help: 'Button label',\n type: 'String',\n control: 'input:text'\n },\n spacingTopMeta,\n spacingBottomMeta,\n {\n name: 'containerVideoSize',\n label: 'Containervideo size',\n help: 'The width of the container video',\n type: 'String',\n control: 'select',\n options: ['default', 'small'],\n defaultValue: 'default'\n },\n {\n name: 'showDivider',\n label: 'Show divider',\n help: 'Will show section divider on top',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title for video sound player',\n help: 'Title for video sound player',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The content of the video sound player',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Video',\n help: 'Select the video',\n type: 'video',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n const bgColor = extra?.settings?.bgColor;\n const buttonColor = extra?.settings?.buttonColor;\n const buttonLabel = extra?.settings?.buttonLabel;\n const containerVideoSize = extra?.settings?.containerVideoSize;\n const contentText = content?.description || null;\n const media = content?.media || null;\n const showDivider = extra?.settings?.showDivider;\n const spacingBottom = extra?.settings?.spacingBottom;\n const spacingTop = extra?.settings?.spacingTop;\n\n return {\n bgColor: bgColor,\n buttonColor: buttonColor,\n buttonLabel: buttonLabel,\n containerVideoSize: containerVideoSize,\n contentText: contentText,\n mediaVideo: media,\n showDivider: showDivider,\n spacingBottom: spacingBottom,\n spacingTop: spacingTop\n };\n }\n}\n\nexport { InteractiveVideoContent };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass LgpdForm implements ContentBlock {\n label = 'Lgpd Form';\n\n component = 'LgpdForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n\n {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n return {\n locale: String(locale).toLowerCase(),\n title: extra?.settings?.title,\n description: extra?.settings?.description,\n headerSpacing: extra?.settings?.headerSpacing || '0',\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError\n };\n }\n}\n\nexport { LgpdForm };\n","const findAll = () => {\n return `\n query servicesByLanguage($locale: String!) {\n services (locale: $locale) {\n id\n title\n content {\n icon {\n url\n title\n }\n }\n page {\n id\n fullpath\n }\n }\n }`;\n};\n\nconst findByPage = () => {\n return `query service($pageId: String!) {\n serviceByPage (pageId: $pageId) {\n id\n title\n pageId\n description\n content {\n icon {\n url\n title\n }\n description\n media {\n url\n title\n mediaType{\n title\n }\n }\n }\n page {\n fullpath\n }\n }\n }`;\n};\n\nconst getServiceItemCategoriesByPage = () => {\n return `query service($pageId: String!, $installmentsNumber: Float) {\n serviceByPage (pageId: $pageId) {\n serviceItemCategories (onlyForAppointments : false) {\n id\n title\n description\n media {\n url\n title\n mediaType {\n title\n }\n }\n service {\n id\n }\n serviceItems (onlyForAppointments : false) {\n id\n title\n subtitle\n description\n contents {\n title\n description\n }\n price (installmentsNumber: $installmentsNumber){\n value\n endValidity\n startValidity\n installment {\n quantity\n value\n }\n }\n }\n }\n }\n }`;\n};\n\nconst Service = {\n getServiceItemCategoriesByPage,\n findAll,\n findByPage\n};\n\nexport default Service;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport Service from 'utils/repo/service';\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass MaintenancePlan implements ContentBlock {\n label = 'Maintenance Plan';\n\n component = 'MaintenancePlan';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'textTransform',\n label: 'The text tranform',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'capitalize',\n 'uppercase'\n ]\n }\n ];\n\n properties = [];\n\n async adapter(contents: any, extra: any, dataFetcher: any) {\n const serviceRequestParams = {\n pageId: extra?.context?.page?.id\n };\n return {\n textTranform: extra?.settings?.textTranform,\n serviceItemCategories:\n (await dataFetcher(Service.getServiceItemCategoriesByPage(), serviceRequestParams))?.data?.serviceByPage\n ?.serviceItemCategories || [],\n locale: extra?.context?.locale || 'pt-BR'\n };\n }\n}\n\nexport { MaintenancePlan };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass MediaBannerAction implements ContentBlock {\n label = 'Single Action Banner';\n\n component = 'MediaBannerAction';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the banner title',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Content',\n help: 'The text description of the banner',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Banner image',\n help: 'Set the banner image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n return {\n title: content?.title,\n textContent: content?.description || null,\n media: { type: 'img', ...content?.media } || null,\n actionButton: content?.callToActions?.[0]?.target\n ? {\n link: content?.callToActions?.[0]?.target || null,\n label: content?.callToActions?.[0]?.label || null\n }\n : null\n };\n }\n}\n\nexport { MediaBannerAction };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n bgColorMeta,\n kindOfContent,\n spacingBottomMeta,\n spacingTopMeta,\n autoPlay,\n muted,\n loop,\n controls\n} from 'utils/meta';\n\nclass MediaSection implements ContentBlock {\n label = 'Media';\n\n component = 'MediaSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'containerSize',\n label: 'Container size',\n help: 'The width of the container',\n type: 'String',\n control: 'select',\n options: [\n 'full-width',\n 'full-screen',\n 'one-third'\n ],\n defaultValue: 'full-width'\n },\n {\n name: 'centralizeItem',\n label: 'Centralize the media',\n help: 'The media will be centralized',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n {\n name: 'isFullContentSize',\n label: 'Set the media to occupy the entire width',\n help: 'The media will have 100% of the available width',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n autoPlay,\n muted,\n loop,\n controls,\n bgColorMeta,\n spacingTopMeta,\n spacingBottomMeta,\n kindOfContent\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'hidden title attr',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Media',\n help: 'Select the media',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n return {\n bgColor: extra?.settings?.bgColor,\n centralizeItem: extra?.settings?.centralizeItem,\n isFullContentSize: extra?.settings?.isFullContentSize,\n data: {\n type: content?.media?.mediaType?.title,\n url: content?.media?.url,\n alt: content?.media?.description\n }\n };\n }\n}\n\nexport { MediaSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass MissingBlock implements ContentBlock {\n label = 'Missing Block';\n\n component = 'MissingBlock';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n missingComponent = '';\n\n settings = [\n anchor\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {\n missingComponent: this.missingComponent\n };\n }\n}\n\nexport { MissingBlock };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass Notification implements ContentBlock {\n label = 'Notification';\n\n component = 'Notification';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'titleNotification',\n label: 'Notification title',\n help: 'The title of the notification',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentNotification',\n label: 'Notification Content Text',\n help: 'This is the content that will be displayed in the notification.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'typeNotification',\n label: 'Notification Type',\n help: 'Select the type of notification you want to display.',\n type: 'String',\n control: 'select',\n defaultValue: 'default',\n options: [\n 'default',\n 'error',\n 'success'\n ]\n },\n {\n name: 'enableAutoClose',\n label: 'Enable Auto Close',\n help: 'Enable auto closing the notification after a certain time.',\n type: 'Boolean',\n control: 'input:checkbox',\n defaultValue: false\n },\n {\n name: 'autoCloseTime',\n label: 'Auto Close Time (ms)',\n help: 'Time in milliseconds after which the notification will be automatically closed.',\n type: 'Number',\n control: 'input:number',\n defaultValue: 10000\n }\n ];\n\n properties = [];\n\n async adapter(extra: any): Promise {\n return {\n spacingBottom: extra?.settings?.spacingBottom,\n spacingTop: extra?.settings?.spacingTop,\n titleNotification: extra?.settings?.titleNotification,\n contentNotification: extra?.settings?.contentNotification,\n typeNotification: extra?.settings?.typeNotification,\n enableAutoClose: extra?.settings?.enableAutoClose,\n autoCloseTime: extra?.settings?.autoCloseTime\n };\n }\n}\n\nexport { Notification };\n","const findOneNews = () => {\n return `\n query ($newsId: String!) {\n findOneNews (newsId: $newsId){\n id\n title\n description\n abstract\n image {\n url\n }\n highlightMedia {\n url\n title\n }\n releaseDate\n newsCategories {\n name\n }\n }\n }`;\n};\n\nconst newsByPage = () => {\n return `\n query ($pageId: String!){\n newsByPage (pageId: $pageId ){\n title\n abstract\n releaseDate\n newsCategories {\n name\n }\n }\n }`;\n};\n\nconst getNewsTotal = async () => {\n return `\n query ($productId: String!) {\n findNews (productId: $productId){\n total\n }\n }`;\n};\n\nconst findNews = async () => {\n return `\n query ($productId: String!, $take: Float, $skip: Float) {\n findNews (productId: $productId, take: $take, skip: $skip){\n news {\n image {\n url\n }\n highlightMedia {\n url\n }\n title\n releaseDate\n newsCategories {\n name\n }\n description\n page {\n fullpath\n }\n }\n }\n }`;\n};\n\nconst findNewsCategory = async () => {\n return `\n query ($productId: String) {\n findNewsCategory (productId: $productId){\n name\n id\n }\n }`;\n};\n\nconst searchNewsByFilters = () => {\n return `\n query (\n $productId: String!,\n $token: String,\n $newsCategoriesIds: [String!],\n $releaseDateOrder: String,\n $skip: Int,\n $take: Int\n ){\n searchNewsByFilters(\n productId : $productId,\n filter : {\n token : $token,\n newsCategoriesIds : $newsCategoriesIds\n },\n releaseDateOrder : $releaseDateOrder,\n pagination : {\n take : $take,\n skip: $skip\n }\n ) {\n news {\n image {\n url\n }\n highlightMedia {\n url\n }\n title\n releaseDate\n newsCategories {\n name\n }\n description\n page {\n fullpath\n }\n }\n total\n }\n }\n `;\n};\n\nconst newsByIds = () => {\n return `\n query (\n $newsIds: [String!]!\n ){\n newsByIds(\n newsIds: $newsIds\n ) {\n id\n title\n description\n releaseDate\n abstract\n highlightMedia {\n url\n }\n image{\n url\n }\n newsCategories {\n name\n }\n page {\n id\n title\n slug\n fullpath\n }\n }\n }\n `;\n};\n\nconst News = {\n findOneNews,\n newsByPage,\n getNewsTotal,\n findNews,\n findNewsCategory,\n searchNewsByFilters,\n newsByIds\n};\n\nexport default News;\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor, spacingTopMeta, spacingBottomMeta } from 'utils/meta';\nimport News from 'utils/repo/news';\nimport getConfig from 'next/config';\n\nclass NewsBanner implements ContentBlock {\n label = 'News Banner';\n\n component = 'NewsBanner';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n spacingTopMeta,\n spacingBottomMeta,\n {\n name: 'selectedNews',\n label: 'Selected News (Required)',\n help: 'Selected News (Required)',\n type: 'picker',\n src: 'News',\n control: 'input:text',\n required: true,\n defaultValue: ''\n }\n ];\n\n properties = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const { serverRuntimeConfig } = getConfig();\n const productId = serverRuntimeConfig.PRODUCT_ID;\n\n const newsIds = extra?.settings?.selectedNews;\n\n if (!Array.isArray(newsIds) || newsIds.length === 0) {\n return {\n newsData: []\n };\n }\n\n const query = News.newsByIds();\n\n const response = await dataFetcher(query, { newsIds, productId });\n\n const newsData = response.data?.newsByIds || [];\n\n const orderedNewsData = newsData.sort((a: any, b: any) => {\n return newsIds.indexOf(a.id) - newsIds.indexOf(b.id);\n });\n\n return {\n newsData: orderedNewsData\n };\n }\n}\n\nexport { NewsBanner };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass OffersForm implements ContentBlock {\n label = 'Offers Form';\n\n component = 'OffersForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {};\n }\n}\n\nexport { OffersForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\n\nclass OffersPanel implements ContentBlock {\n label = 'Offers';\n\n component = 'OffersPanel';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'placeholderText',\n label: 'Placeholder text',\n help: \"Placeholder text when there's no region selected\",\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const dealers =\n (await dataFetcher(await Dealers?.getAllDealersForForms(), { locale: extra?.context?.locale }))?.data?.dealers ||\n [];\n\n return {\n dealers\n };\n }\n}\n\nexport { OffersPanel };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport Dealers from 'utils/repo/dealers';\nimport { anchor } from 'utils/meta';\n\nclass RecallBanner implements ContentBlock {\n label = 'Dealer search';\n\n component = 'ActionBannerWithForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Dealer search component title',\n help: 'Dealer search component title',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'bgColor',\n label: 'The color background at the section wrapper ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'default',\n 'black'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation =\n (await dataFetcher(Dealers.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n return {\n locale: String(locale).toLowerCase(),\n dealers: dealersByLocation,\n title: extra?.settings?.title,\n spacingTop: extra?.settings?.spacingTop,\n spacingBottom: extra?.settings?.spacingBottom,\n bgColor: extra?.settings?.bgColor\n };\n }\n}\n\nexport { RecallBanner };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass RecallBannerForm implements ContentBlock {\n label = 'Recall Banner Search Form';\n\n component = 'RecallBannerForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {};\n }\n}\n\nexport { RecallBannerForm };\n","const getAllRecalls = () => {\n return `\n query recalls (\n # variables\n $locale: String\n ){\n recalls(locale : $locale) {\n id\n name\n code\n model\n modelYear\n description\n medias {\n url\n }\n startDateCampaign\n }\n }\n `;\n};\n\nconst getRecallByChassiOrBoardViaDetran = () => {\n return `query recallByChassiOrBoardViaDetran (\n # variables\n $param: String!\n ){\n recallByChassiOrBoardViaDetran(param : $param) {\n code\n repairDate\n name\n id\n file {\n url\n }\n description\n model\n repairStatus\n denatranCode\n chassi\n board\n dealership {\n name\n uf\n address\n city\n }\n duration\n }\n }`;\n};\n\nconst getRecallVehiclesByChassiOrPatent = () => {\n return `\n query recallVehiclesByChassiOrPatent(\n $chassiOrPatent: String!\n $locale: String\n){\n recallVehiclesByChassiOrPatent(\n chassiOrPatent: $chassiOrPatent,\n locale : $locale\n ){\n status\n vehicle {\n chassi\n id\n patent\n }\n }\n}\n `;\n};\n\nconst recallFromTasaApiByChassis = () => {\n return `\nquery recallFromTasaApiByChassis($chassi : String!){\n recallFromTasaApiByChassis(chassi : $chassi) {\n id\n name\n status\n }\n}`;\n};\n\nconst recallFromTDVApi = () => {\n return `\n query recallFromTDVApi($filter: FilterRecallTDVApi!) {\n\t recallFromTDVApi(filter: $filter ) {\n recallCampaigns {\n code\n name\n description\n }\n attended\n exists\n dealer\n approvationDate\n }\n}`;\n};\n\nconst Recall = {\n getAllRecalls,\n getRecallByChassiOrBoardViaDetran,\n getRecallVehiclesByChassiOrPatent,\n recallFromTasaApiByChassis,\n recallFromTDVApi\n};\n\nexport default Recall;\n","import Dealer from 'utils/repo/dealers';\nimport Recall from 'utils/repo/recall';\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass RecallForm implements ContentBlock {\n label = 'Recall Form';\n\n component = 'RecallForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const productId = extra?.context?.productId;\n\n if (!productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n return {\n recalls: (await dataFetcher(Recall.getAllRecalls(), { locale: extra?.context?.locale }))?.data?.recalls || [],\n dealers: (await dataFetcher(Dealer.getAllDealers(), { productId: productId }))?.data?.dealers || [],\n locale: extra?.context?.locale || 'pt-BR'\n };\n }\n}\n\nexport { RecallForm };\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n formTitle,\n formDescription,\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n formHeaderSpacing\n} from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\n\nclass RecallFormCustom implements ContentBlock {\n label = 'Recall Form Custom';\n\n component = 'RecallFormCustom';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n formTitle,\n formDescription,\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n formHeaderSpacing\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const settings = extra?.settings;\n const locale = String(extra?.context?.locale).toLowerCase();\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation =\n (await dataFetcher(Dealers.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n return {\n locale: locale,\n dealersByLocation: dealersByLocation,\n formTitle: settings?.title,\n formDescription: settings?.description,\n titleSuccess: settings?.titleSuccess,\n contentSuccess: settings?.contentSuccess,\n titleError: settings?.titleError,\n contentError: settings?.contentError,\n headerSpacing: settings?.headerSpacing || '0'\n };\n }\n}\n\nexport { RecallFormCustom };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass RecoverPasswordForm implements ContentBlock {\n label = 'Recover Password Form';\n\n component = 'RecoverPasswordForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {};\n }\n}\n\nexport { RecoverPasswordForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass RegistrationForm implements ContentBlock {\n label = 'Registration Form';\n\n component = 'RegistrationForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n return {};\n }\n}\n\nexport { RegistrationForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\n\nclass RepentanceForm implements ContentBlock {\n label = 'Repentance Form';\n\n component = 'RepentanceForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation =\n (await dataFetcher(Dealers.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n return {\n locale: String(locale).toLowerCase(),\n dealers: dealersByLocation,\n title: extra?.settings?.title,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError\n };\n }\n}\n\nexport { RepentanceForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nimport { anchor, spacingTopMeta, spacingBottomMeta, bgColorMeta, centerContentMeta, kindOfContent } from 'utils/meta';\n\nclass RichTextSection implements ContentBlock {\n label = 'Rich Text';\n\n component = 'RichTextSection';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n centerContentMeta,\n bgColorMeta,\n spacingTopMeta,\n spacingBottomMeta,\n kindOfContent\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'hidden title attr',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'description',\n help: 'Rich text content',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n return {\n textContent: content?.description || null\n };\n }\n}\n\nexport { RichTextSection };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport Dealers from 'utils/repo/dealers';\nimport { anchor } from 'utils/meta';\n\nclass SaleUsedForm implements ContentBlock {\n label = 'Sale Used Form';\n\n component = 'SaleUsedForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'title',\n label: 'Title form',\n help: 'The title of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'description',\n label: 'Description',\n help: 'Is the description of the form',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'attractingMedia',\n label: 'Attracting Media',\n help: 'Indentify the form',\n type: 'String',\n control: 'input:text',\n defaultValue: 'SITE MONTADORA'\n },\n {\n name: 'titleSuccess',\n label: 'Title success',\n help: 'The title used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentSuccess',\n label: 'Content success',\n help: 'Descriptive text used in the sent form success response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'titleError',\n label: 'Title error',\n help: 'The title used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentError',\n label: 'Content error',\n help: 'Descriptive text used in the sent form error response modal',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'headerSpacing',\n label: 'Header spacing',\n help: 'Is the spacing between the header with title and description of the form',\n type: 'Number',\n control: 'input:number',\n defaultValue: '0'\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation =\n (await dataFetcher(await Dealers?.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n return {\n locale: String(locale).toLowerCase(),\n dealers: dealersByLocation,\n title: extra?.settings?.title,\n description: extra?.settings?.description,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n headerSpacing: extra?.settings?.headerSpacing || '0',\n attractingMedia: extra?.settings?.attractingMedia || ''\n };\n }\n}\n\nexport { SaleUsedForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass Search implements ContentBlock {\n label = 'Search';\n\n component = 'Search';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'bgColor',\n label: 'Cor de fundo',\n help: 'Cor de fundo para a sessão',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ]\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ]\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Search title with no result',\n help: 'Title for unrelated search result',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Search text no result',\n help: 'Text for unrelated search result',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n }\n ];\n\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n const locale = extra?.context?.locale;\n const titleNoResults = content?.title || null;\n const textNoResults = content?.description || null;\n\n const spacingTop = extra?.settings?.spacingTop;\n const spacingBottom = extra?.settings?.spacingBottom;\n const bgColor = extra?.settings?.bgColor;\n\n return {\n locale: String(locale).toLowerCase(),\n textNoResults: textNoResults,\n titleNoResults: titleNoResults,\n spacingTop: spacingTop,\n spacingBottom: spacingBottom,\n bgColor: bgColor\n };\n }\n}\n\nexport { Search };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass SecondaryNavigation implements ContentBlock {\n label = 'Secondary Navigation';\n\n component = 'SecondaryNavigation';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'showSectionNavigation',\n label: 'Show section navigation',\n help: 'Will show the section navigation in the top of the section',\n type: 'boolean',\n control: 'toggle',\n defaultValue: false\n },\n {\n name: 'title',\n label: 'Content navigation',\n help: 'The content of the navigation',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'Set the page title, ex: Sports.',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Active link color(hexadecimal)',\n help: 'Enter the hexadecimal of the button color when active ex #FF0000',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n\n {\n name: 'media',\n label: 'Active url page icon image',\n help: 'Set page icon image with active url',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'mediaMob',\n label: 'Inactive url page icon image',\n help: 'Set page icon image with inactive url',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link label',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n return {\n title: extra?.settings?.title,\n showSectionNavigation: extra?.settings?.showSectionNavigation,\n links: contents.map((content) => {\n return {\n pageTitle: content?.title,\n activeIcon: content?.media\n ? {\n type: content?.media?.mediaType?.title,\n url: content?.media?.url,\n alt: content?.media?.description\n }\n : null,\n inactiveIcon: content?.mediaMob\n ? {\n type: content?.mediaMob?.mediaType?.title,\n url: content?.mediaMob?.url,\n alt: content?.mediaMob?.description\n }\n : null,\n url: content?.callToActions?.[0]?.target || null,\n label: content?.callToActions?.[0]?.label || null,\n colorActiveLink: content?.description\n };\n })\n };\n }\n}\n\nexport { SecondaryNavigation };\n","import Service from 'utils/repo/service';\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass ServiceOffers implements ContentBlock {\n label = 'Service Offers';\n\n component = 'ServiceOffers';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n properties = [];\n\n async adapter(contents: any, extra: any, dataFetcher: any) {\n let serviceItemCategories = [];\n const locale = extra?.context?.locale || 'pt-BR';\n\n try {\n const pageId = extra?.context?.page?.id;\n const installmentsNumber = extra?.context?.page?.tenant?.tenantData?.installmentMaintenanceClosePrice;\n\n if (!pageId) {\n throw new Error('Page ID is missing in context');\n }\n\n const variables: any = { pageId };\n if (installmentsNumber) {\n variables.installmentsNumber = installmentsNumber;\n }\n\n const response = await dataFetcher(Service.getServiceItemCategoriesByPage(), variables);\n serviceItemCategories = response?.data?.serviceByPage?.serviceItemCategories || [];\n } catch (error) {\n console.error('Error fetching service item categories:', error);\n }\n\n return {\n serviceItemCategories,\n locale\n };\n }\n}\n\nexport { ServiceOffers };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockProperty } from 'components/content-blocks/ContentBlockProperty';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass SimpleBanner implements ContentBlock {\n properties: ContentBlockProperty[] = [\n {\n name: 'title',\n label: 'Title for banner',\n help: 'Main text to be displayed on banner',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Description of banner',\n help: 'Text to be displayed below the title',\n type: 'string',\n control: 'textarea',\n defaultValue: '',\n props: null\n },\n {\n name: 'media',\n label: 'Banner media',\n help: 'Set the banner media',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n },\n {\n name: 'iconId',\n label: 'Logo image',\n help: 'Set the logo image',\n type: 'media',\n control: 'upload',\n defaultValue: '',\n props: null\n }\n ];\n\n label = 'Simple Banner';\n\n component = 'SimpleBanner';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [anchor];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(content: any): Promise {\n const { title, description, media, icon } = content[0];\n\n return {\n title,\n description,\n media,\n logo: icon?.url\n };\n }\n}\n\nexport { SimpleBanner };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport Vehicle from 'utils/repo/vehicle';\nimport Dealers from 'utils/repo/dealers';\nimport {\n anchor,\n formAttractingMedia,\n formContentError,\n formContentSuccess,\n formDescription,\n formTitle,\n formTitleError,\n formTitleSuccess,\n spacingBottomMeta,\n spacingTopMeta\n} from 'utils/meta';\n\nclass SpecialSalesForm implements ContentBlock {\n label = 'Special Sales Form';\n\n component = 'SpecialSalesForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n formTitle,\n formDescription,\n formAttractingMedia,\n {\n name: 'disabilitiesPeopleAllowedModels',\n label: 'Allowed Models (People with Disabilities)',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'diplomatsAllowedModels',\n label: 'Allowed Models (Diplomats)',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n\n {\n name: 'fleetsAllowedModels',\n label: 'Allowed Models (Fleets)',\n help: 'List of allowed models to display, comma separated. Empty to allow all.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n spacingTopMeta,\n spacingBottomMeta\n\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n const dealersByLocation =\n (await dataFetcher(await Dealers?.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n const vehiclesByModels =\n (await dataFetcher(await Vehicle.getAllVehicles(), { locale: locale }))?.data?.vehicles || [];\n\n const disabilitiesPeopleAllowedModels = extra?.settings?.disabilitiesPeopleAllowedModels || '';\n const diplomatsAllowedModels = extra?.settings?.diplomatsAllowedModels || '';\n const fleetsAllowedModels = extra?.settings?.fleetsAllowedModels || '';\n\n let disabilitiesPeopleModelSet = [];\n let diplomatsModelSet = [];\n let fleetsModelSet = [];\n\n if (disabilitiesPeopleAllowedModels?.length > 0) {\n disabilitiesPeopleModelSet = disabilitiesPeopleAllowedModels\n .split(',')\n .map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n if (diplomatsAllowedModels?.length > 0) {\n diplomatsModelSet = diplomatsAllowedModels.split(',').map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n if (fleetsAllowedModels?.length > 0) {\n fleetsModelSet = fleetsAllowedModels.split(',').map((model) => String(model).trim().toLocaleLowerCase());\n }\n\n const models = [];\n\n for (const model of vehiclesByModels) {\n models.push({\n name: model.name || '',\n vehicleExternalId: model?.vehicleExternalId || '',\n version: model?.mainVersion?.name || '',\n prodYear: model?.mainVersion?.modelYear?.year || '',\n katashiki: model?.mainVersion?.modelYear?.katashiki || '',\n suffixCode: model?.mainVersion?.modelYear?.suffixCode || '',\n internalColor: {\n name: model?.mainVersion?.modelYear?.defaultInternalColorCode || '',\n code: model?.mainVersion?.modelYear?.defaultInternalColorCode || ''\n },\n externalColor: {\n name: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.name || '',\n code: model?.mainVersion?.modelYear?.vehicleColors?.[0]?.color?.code || ''\n }\n });\n }\n\n let disabilitiesPeopleModels = models;\n let diplomatsModels = models;\n let fleetsModels = models;\n\n if (disabilitiesPeopleModelSet?.length > 0) {\n disabilitiesPeopleModels = disabilitiesPeopleModels.filter((model) =>\n disabilitiesPeopleModelSet.includes(`${model.name}`.trim().toLocaleLowerCase())\n );\n }\n\n if (diplomatsModelSet?.length > 0) {\n diplomatsModels = diplomatsModels.filter((model) =>\n diplomatsModelSet.includes(`${model.name}`.trim().toLocaleLowerCase())\n );\n }\n\n if (fleetsModelSet?.length > 0) {\n fleetsModels = fleetsModels.filter((model) =>\n fleetsModelSet.includes(`${model.name}`.trim().toLocaleLowerCase())\n );\n }\n\n return {\n locale: String(locale).toLowerCase(),\n dealers: dealersByLocation,\n disabilitiesPeopleModels: disabilitiesPeopleModels,\n diplomatsModels: diplomatsModels,\n fleetsModels: fleetsModels,\n title: extra?.settings?.title,\n description: extra?.settings?.description,\n titleSuccess: extra?.settings?.titleSuccess,\n contentSuccess: extra?.settings?.contentSuccess,\n titleError: extra?.settings?.titleError,\n contentError: extra?.settings?.contentError,\n spacingTop: extra?.settings?.spacingTop || '0',\n spacingBottom: extra?.settings?.spacingBottom || '0',\n attractingMedia: extra?.settings?.attractingMedia || ''\n };\n }\n}\n\nexport { SpecialSalesForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass TabsListButtons implements ContentBlock {\n label = 'Buttons tabs';\n\n component = 'TabsListButtons';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'default',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'black'\n ],\n defaultValue: 'default'\n },\n {\n name: 'spacingTop',\n label: 'The padding space at the top of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ],\n defaultValue: '2'\n },\n {\n name: 'spacingBottom',\n label: 'The padding space at the bottom of the section ',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7'\n ],\n defaultValue: '2'\n },\n {\n name: 'listAlignment',\n label: 'Alignment of the list of buttons',\n help: '',\n type: 'String',\n control: 'select',\n options: ['center', 'left'],\n defaultValue: 'center'\n }\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Title',\n help: 'The title of the content',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].label',\n label: 'Link title',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'callToActions[].target',\n label: 'Link target',\n help: '',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(contents: any[], extra: any): Promise {\n const content = contents[0];\n\n if (!content?.title) {\n throw Error(\"Content 'title' are required\");\n }\n\n const buttonsList = [];\n const pagePath = extra?.context?.page?.fullpath;\n\n content?.callToActions?.map((action) => {\n buttonsList.push({\n link: action.target || undefined,\n linkLabel: action.label || undefined\n });\n });\n\n return { buttonsList, pagePath };\n }\n}\n\nexport { TabsListButtons };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\nimport VehicleQuery from 'utils/repo/vehicle';\n\nclass TabsWrapper implements ContentBlock {\n label = 'Car Models Tabs';\n\n component = 'TabsWrapper';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'disclaimer',\n label: 'Disclaimer',\n help: 'Legal text that will be below the component',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'hidePrice',\n label: 'Hide Price',\n help: 'Button to hide price',\n type: 'boolean',\n control: 'toggle',\n defaultValue: true\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n let getVehiclesByCategoryData;\n\n try {\n getVehiclesByCategoryData = await dataFetcher(await VehicleQuery.getVehiclesByCategoryForDisplay(), {\n locale: extra?.context?.locale\n });\n\n return {\n carCategoriesData: getVehiclesByCategoryData?.data?.vehicleCategories,\n locale: extra?.context?.locale,\n title: extra?.section?.name\n };\n } catch (err) {\n console.error('Falha ao buscar dados do componente TabsWrapper', err);\n }\n\n return { carCategoriesData: [] };\n }\n}\n\nexport { TabsWrapper };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockProperty } from 'components/content-blocks/ContentBlockProperty';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\n\nclass WaveDivider implements ContentBlock {\n properties: ContentBlockProperty[] = [];\n\n label = 'Wave Divider';\n\n component = 'WaveDivider';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n {\n name: 'color',\n label: 'Wave color',\n help: '',\n type: 'String',\n control: 'select',\n options: [\n 'white',\n 'black',\n 'gray',\n 'gray-2',\n 'gray-3',\n 'gray-4',\n 'gray-5',\n 'gray-6',\n 'gray-7',\n 'blue-1',\n 'blue-2'\n ]\n },\n {\n name: 'orientation',\n label: 'Wave orientation',\n help: '',\n type: 'String',\n control: 'select',\n options: ['left', 'right']\n }\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async adapter(content: any, extras: any): Promise {\n const { color, orientation } = extras;\n\n return {\n color,\n orientation\n };\n }\n}\n\nexport { WaveDivider };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n formTitle,\n formDescription,\n formTitleSuccess,\n formContentSuccess,\n formLinkSuccess,\n formLinkTitleSuccess,\n formTitleError,\n formContentError,\n spacingTopMeta,\n spacingBottomMeta\n} from 'utils/meta';\n\nimport Dealers from 'utils/repo/dealers';\n\nclass DreamCarForm implements ContentBlock {\n label = 'Dream Car Form';\n\n component = 'DreamCarForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = true;\n\n settings = [\n anchor,\n {\n name: 'selectedContest',\n label: 'Selected Contest (Required)',\n help: 'Selected Contest (Required)',\n type: 'picker',\n src: 'Contests',\n control: 'input:text',\n required: true,\n defaultValue: ''\n },\n {\n name: 'titleExpiredEvent',\n label: 'Title for Expired Event',\n help: 'Title for Expired Event',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'contentExpiredEvent',\n label: 'Content for Expired Event',\n help: 'Content for Expired Event',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'linkButtonExpiredEvent',\n label: 'Link for Expired Event Button',\n help: 'Relative link to the button in the content displayed when an event is no longer active. This link redirects users to a chosen destination URL.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'labelButtonExpiredEvent',\n label: 'Label for Expired Event Button',\n help: 'Label relative to the button in the content displayed when an event is no longer active.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n formTitle,\n formDescription,\n formTitleSuccess,\n formContentSuccess,\n formLinkTitleSuccess,\n formLinkSuccess,\n formTitleError,\n formContentError,\n spacingTopMeta,\n spacingBottomMeta\n\n ];\n\n properties = [\n {\n name: 'title',\n label: 'Delivery title',\n help: 'The title of the delivery',\n type: 'string',\n control: 'input:text',\n defaultValue: '',\n props: null\n },\n {\n name: 'description',\n label: 'Delivery description',\n help: 'The description of the delivery',\n type: 'String',\n control: 'editor',\n defaultValue: '',\n props: null\n }\n ];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const settings = extra?.settings;\n const locale = extra?.context?.locale;\n const productId = extra?.context?.productId;\n\n if (!extra?.context?.productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const dealersByLocation =\n (await dataFetcher(Dealers.getAllDealersEssential(), { productId: productId }))?.data?.dealers || [];\n\n return {\n locale: String(locale).toLowerCase(),\n dealersByLocation: dealersByLocation,\n selectedEvent: settings?.selectedContest || null,\n delivery: contents,\n title: settings?.title,\n description: settings?.description,\n linkButtonExpiredEvent: settings?.linkButtonExpiredEvent,\n labelButtonExpiredEvent: settings?.labelButtonExpiredEvent,\n titleExpiredEvent: settings?.titleExpiredEvent,\n contentExpiredEvent: settings?.contentExpiredEvent,\n titleSuccess: settings?.titleSuccess,\n contentSuccess: settings?.contentSuccess,\n linkTitleSuccess: settings?.linkTitleSuccess,\n linkSuccess: settings?.linkSuccess,\n titleError: settings?.titleError,\n contentError: settings?.contentError,\n spacingBottom: settings?.spacingBottom || 0,\n spacingTop: settings?.spacingTop || 0\n };\n }\n}\n\nexport { DreamCarForm };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n formTitle,\n formDescription,\n formAttractingMedia,\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n spacingTopBottom\n} from 'utils/meta';\n\nclass SimplifiedContactForm implements ContentBlock {\n label = 'Simplified Contact Form';\n\n component = 'SimplifiedContactForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n formTitle,\n formDescription,\n {\n name: 'formType',\n label: 'Form type (required)',\n help: 'The type of the form (required)',\n type: 'String',\n required: true,\n control: 'select',\n options: function (tenant) {\n if (tenant?.locale === 'pt-br') {\n return [\n 'DREAM_CAR',\n 'TOYOTA_TOUR_CONTACT',\n 'SAC'\n ];\n } else {\n return ['RECALL_CONTACT', 'QUEJAS'];\n }\n },\n defaultValue: ''\n },\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: ['white', 'gray']\n },\n formAttractingMedia,\n {\n name: 'comments',\n label: 'Comments',\n help: 'Extra information for target',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n spacingTopBottom\n\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n return {\n locale: String(locale).toLowerCase(),\n title: extra?.settings?.formTitle,\n formType: extra?.settings?.formType,\n bgColor: extra?.settings?.bgColor,\n titleSuccess: extra?.settings?.formTitleSuccess,\n contentSuccess: extra?.settings?.formContentSuccess,\n titleError: extra?.settings?.formTitleError,\n contentError: extra?.settings?.formContentError,\n description: extra?.settings?.formDescription,\n headerSpacing: extra?.settings?.spacingTopBottom || '0',\n attractingMedia: extra?.settings?.formAttractingMedia || '',\n comments: extra?.settings?.comments || ''\n };\n }\n}\n\nexport { SimplifiedContactForm };\n","import RecallData from 'utils/repo/recall';\nimport { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport { anchor } from 'utils/meta';\n\nclass Recall implements ContentBlock {\n label = 'Recall';\n\n component = 'Recall';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n {\n name: 'searchSectionTitle',\n label: 'Search section title',\n help: 'Enter the search section title.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n {\n name: 'filterSectionTitle',\n label: 'Filter section title',\n help: 'Enter the filter section title.',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n }\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const productId = extra?.context?.productId;\n if (!productId) {\n throw new Error(`There is no productId defined.`);\n }\n\n const locale = extra?.context?.locale;\n if (!locale) {\n throw new Error(`There is no locale defined.`);\n }\n\n const recalls = (await dataFetcher(RecallData.getAllRecalls(), { locale }))?.data?.recalls;\n const settings = extra?.settings;\n\n return {\n recalls: recalls || [],\n searchSectionTitle: settings.searchSectionTitle.trim(),\n filterSectionTitle: settings.filterSectionTitle.trim(),\n locale\n };\n }\n}\n\nexport { Recall };\n","import { ContentBlock } from 'components/content-blocks/ContentBlock';\nimport { ContentBlockType } from 'components/content-blocks/ContentBlockType';\nimport {\n anchor,\n formTitle,\n formDescription,\n formAttractingMedia,\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n spacingTopBottom\n} from 'utils/meta';\n\nclass DirectSalesForm implements ContentBlock {\n label = 'Direct Sales Form';\n\n component = 'DirectSalesForm';\n\n icon = 'GenericIcon';\n\n type = ContentBlockType.PASSIVE;\n\n multiple = false;\n\n settings = [\n anchor,\n formTitle,\n formDescription,\n {\n name: 'formType',\n label: 'Form type (required)',\n help: 'The type of the form (required)',\n type: 'String',\n required: true,\n control: 'select',\n options: function (tenant) {\n if (tenant?.locale === 'pt-br') {\n return [\n 'DREAM_CAR',\n 'TOYOTA_TOUR_CONTACT',\n 'SAC'\n ];\n } else {\n return ['RECALL_CONTACT', 'QUEJAS'];\n }\n },\n defaultValue: ''\n },\n {\n name: 'bgColor',\n label: 'Wrapper backgroud color',\n help: '',\n type: 'String',\n control: 'select',\n options: ['white', 'gray']\n },\n formAttractingMedia,\n {\n name: 'comments',\n label: 'Comments',\n help: 'Extra information for target',\n type: 'String',\n control: 'input:text',\n defaultValue: ''\n },\n formTitleSuccess,\n formContentSuccess,\n formTitleError,\n formContentError,\n spacingTopBottom\n\n ];\n\n properties = [];\n\n async adapter(contents: any[], extra: any, dataFetcher: any): Promise {\n const locale = extra?.context?.locale;\n\n return {\n locale: String(locale).toLowerCase(),\n title: extra?.settings?.formTitle,\n formType: extra?.settings?.formType,\n bgColor: extra?.settings?.bgColor,\n titleSuccess: extra?.settings?.formTitleSuccess,\n contentSuccess: extra?.settings?.formContentSuccess,\n titleError: extra?.settings?.formTitleError,\n contentError: extra?.settings?.formContentError,\n description: extra?.settings?.formDescription,\n headerSpacing: extra?.settings?.spacingTopBottom || '0',\n attractingMedia: extra?.settings?.formAttractingMedia || '',\n comments: extra?.settings?.comments || ''\n };\n }\n}\n\nexport { DirectSalesForm };\n","import { buildTemplate } from 'utils/page/templates/functions';\nimport * as components from 'components/index';\nimport BTB from 'utils/btb/utils';\nimport Logger from 'utils/repo/logger';\nimport React from 'react';\n\nclass PageBuilder {\n protected readonly pageData: any;\n protected readonly repo: any;\n\n constructor(pageData: any, repo: any) {\n this.pageData = pageData;\n this.repo = repo;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public async page(context): Promise {\n const templateName = this.pageData?.template || 'PageTemplate';\n const template = buildTemplate(templateName);\n const dataFetcher = async (query, variables = {}, useCache = true) => {\n return await this.repo.get(query, variables, useCache);\n };\n\n let data = [];\n\n try {\n data = await this.repo.get(template.queryBuilder(), { pageId: this.pageData.id });\n } catch (error) {\n Logger.error('[PageBuilder] Failed to query page data. Reason: ', error);\n throw error;\n }\n\n context.page = this.pageData;\n if ([\n 'VehicleTemplate',\n 'ToyotaCycleTemplate',\n 'VehicleVerticalTemplate',\n 'VehicleHybridFlexTemplate'\n ].includes(templateName)) {\n context.btb = new BTB();\n }\n\n return await template.build(data, context, dataFetcher);\n }\n}\n\n/**\n * Import and instantiate the React Component\n *\n * @param name The class name of wanted Component\n * @param props Properties for component\n */\nconst buildComponent = (name: string, key: string, props: any, children?: []) => {\n const CustomComponent = components?.[name];\n\n if (!CustomComponent) {\n throw new Error(`[PageBuilder] Component with name '${name}' not exists`);\n }\n\n const anchor = props?.anchor || key;\n\n if (props?.anchor) {\n props = { ...props, style: { ...props.style, scrollMarginTop: '7.5rem' } };\n }\n\n if (!children || !children?.length) {\n return ;\n }\n\n const builded = [];\n\n children.forEach((tuple: any, idx: number) => {\n builded.push(buildComponent(tuple?.component, `${key}-children-${idx}`, tuple?.props, tuple?.children || []));\n });\n\n return (\n \n {builded}\n \n );\n};\n\nexport { PageBuilder, buildComponent };\n","import { PageBuilder, buildComponent } from 'utils/page/page-builder';\nimport { PageProvider } from 'providers/page';\nimport { useRouter } from 'next/router';\nimport i18n from 'utils/i18n';\nimport PageMetaContent from 'components/atoms/page-meta-content';\nimport Header from 'components/organisms/header';\nimport React, { useEffect } from 'react';\nimport { getAttrMParameter } from 'utils/functions';\nimport Menu from 'utils/repo/menu';\nimport PageRepo from 'utils/repo/page';\nimport Repo from 'utils/repo';\nimport Logger from 'utils/repo/logger';\nimport getConfig from 'next/config';\nimport { buildTemplate } from 'utils/page/templates/functions';\nimport { PaginationTemplate } from 'utils/page/templates/PaginationTemplate';\n\nconst { serverRuntimeConfig } = getConfig();\nconst slugsCached = {};\n\nconst dataFetcher = async (query, variables = {}) => {\n const useCache = false;\n try {\n return await Repo.get(query, variables, useCache);\n } catch (error) {\n Logger.error('Error fetching data with query:', query, error);\n return { error: true, message: error.message };\n }\n};\n\nexport default function GenericPage(props) {\n const router = useRouter();\n\n useEffect(() => {\n const attrMParams = getAttrMParameter();\n typeof sessionStorage !== 'undefined' &&\n Object.keys(attrMParams).length > 0 &&\n Object.values(attrMParams).some((value) => value) &&\n sessionStorage.setItem('attrMParameters', JSON.stringify(attrMParams));\n }, []);\n\n if (router.isFallback) {\n return (\n \n {/* TODO: change this image */}\n \"\"\n \n );\n }\n\n const components = [];\n\n if (props?.pageBlocks) {\n props.pageBlocks.forEach((tuple, idx) => {\n components.push(buildComponent(tuple.component, `dynamic-component-${idx}`, tuple.props, tuple?.children || []));\n });\n }\n\n return (\n <>\n \n
\n \n
{components}
\n
\n \n );\n}\n\n/**\n * Builder for breadcrumb during full build rountine (when all pages are\n * rendered at once).\n *\n * @param {string} current Fullpath of current rendenring page\n * @returns Array of objects with slug and name\n */\nfunction breadcrumbBuilderFromPath(current) {\n const crumbs = [];\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n current = current.endsWith('/') && current.length > 0 ? current.slice(0, -1) : current;\n\n if (current.length === 0 || !current.includes('/')) {\n break;\n }\n\n crumbs.push(slugsCached[current]);\n\n let parts = current.split('/');\n parts.pop();\n current = parts.join('/');\n }\n\n crumbs.push({ slug: '/', name: 'Home', id: '' });\n\n return crumbs.reverse();\n}\n\n/**\n * Builder for breadcrumb during SSR or ISR rendering of one page\n *\n * @param {Page} page Object with data of current page\n * @return Promise\n */\nasync function breadcrumbBuilderFromTree(page) {\n let crumbs = [];\n let pages = [];\n\n try {\n const breadcrumbResult = await Repo.get(PageRepo.findPageTree(), { id: page.id });\n if (!breadcrumbResult?.data?.pageTree?.length) {\n return [];\n }\n\n pages = breadcrumbResult?.data?.pageTree || [];\n } catch (err) {\n Logger.debug('[Page::breadcrumb] Failed to get page tree with query. Reason:', err);\n\n return [];\n }\n\n crumbs = pages.map((entry) => {\n return {\n slug: entry.fullpath,\n name: entry.title,\n id: entry.id\n };\n });\n\n crumbs.push({ slug: '/', name: 'Home', id: '' });\n\n return crumbs.reverse();\n}\n\n/**\n *\n * @param {Page} page\n */\n\nexport async function getStaticPaths({ locales }) {\n // By limitation of Amplify, we can only have 1 locale each time (installation)\n // So we can assume first locale as valid for get paths\n const productId = serverRuntimeConfig.PRODUCT_ID;\n // find all disponible pages\n const pagesResult = await Repo.get(PageRepo.findAllByProduct(), { productId });\n let pages = pagesResult?.data?.pages || [];\n let paths = [];\n\n if (!pages.length) {\n return { paths: [], fallback: 'blocking' };\n }\n\n // make sure to process parent pages before its childrens\n pages.sort((a, b) => ('' + a.fullpath).localeCompare(b.fullpath));\n\n // map the paths\n for (const page of pages) {\n slugsCached[page.fullpath] = {\n slug: page.fullpath,\n name: page.title,\n id: page.id\n };\n\n let slug = page.fullpath.startsWith('/') ? page.fullpath.substring(1) : page.fullpath;\n const templateName = page?.template || 'PageTemplate';\n const template = buildTemplate(templateName);\n const isPageable = template instanceof PaginationTemplate;\n\n const props = {\n params: {\n slug: slug.split('/'),\n breadcrumb: breadcrumbBuilderFromPath(page.fullpath)\n }\n };\n\n paths.push(props);\n\n if (isPageable) {\n let totalPages = (await template.getTotalPages(dataFetcher)) || 1;\n\n for (let i = 1; i <= totalPages; i++) {\n const pageSlug = slug.split('/');\n pageSlug.push(i.toString());\n paths.push({\n params: {\n slug: pageSlug,\n breadcrumb: breadcrumbBuilderFromPath(page.fullpath)\n }\n });\n }\n }\n }\n\n return { paths, fallback: 'blocking' };\n}\n\nexport async function getStaticProps({ locale, params }) {\n const productId = serverRuntimeConfig?.PRODUCT_ID || '';\n params = structuredClone(params);\n\n let slug = Array.isArray(params?.slug) ? params.slug.join('/') : params?.slug || '/';\n slug = slug.charAt(0) !== '/' ? `/${slug}` : slug;\n\n let paginationParts = slug.match(/\\/[0-9]+$/);\n let totalPages = 1;\n let currentPage = 1;\n let page = false;\n\n if (paginationParts) {\n slug = slug.split('/').slice(0, -1).join('/');\n currentPage = parseInt(paginationParts[0].substring(1), 10);\n }\n\n try {\n const pageResult = await Repo.get(PageRepo.findBySlug(), { fullpath: slug, productId: productId });\n page = pageResult?.data?.pageByPathAndProduct || null;\n\n if (!page || page.status !== 'PUBLISHED') {\n return { notFound: true };\n }\n } catch (err) {\n Logger.error(`[getStaticProps] Error fetching page data for slug '${slug}':`, err);\n return { notFound: true };\n }\n\n const templateName = page?.template || 'PageTemplate';\n const template = buildTemplate(templateName);\n const isPageable = template instanceof PaginationTemplate;\n\n if (isPageable) {\n try {\n totalPages = (await template.getTotalPages(dataFetcher)) || 1;\n params.totalPages = parseInt(totalPages);\n params.currentPage = parseInt(currentPage);\n } catch (err) {\n page = false;\n Logger.error(`[getStaticProps] Error fetching total pages for slug '${slug}':`, err);\n return { notFound: true };\n }\n }\n\n const pageNotInthePaths = isPageable && currentPage > parseInt(totalPages);\n\n // if nothing is found or status is not published, show the 404 page\n\n if (!page || page.status !== 'PUBLISHED' || pageNotInthePaths) {\n Logger.debug(\n `[Page::staticProps] Skip the generation of page '${slug}' at '${locale}'. Reason: empty page or not published`,\n { ...page }\n );\n\n return {\n notFound: true\n };\n }\n\n const menuData = await Menu.getMenuItemsByType({ type: 'main', productId });\n params.breadcrumb = await breadcrumbBuilderFromTree(page);\n\n try {\n const i18nMessages = await i18n.getMessages(locale);\n const pageBuilder = new PageBuilder(page, Repo);\n\n const pageBlocks = await pageBuilder.page({ params, locale, productId, i18nMessages });\n if (!pageBlocks) {\n Logger.error(`[Page::staticProps] Failed to generate page '${slug}' at '${locale}'. Reason: empty pageBlocks`);\n\n return { notFound: true };\n }\n\n const titleConfig = page?.configs?.find((c) => c.name === 'title');\n\n return {\n revalidate: serverRuntimeConfig.REVALIDATION_INTERVAL, // ISR: just revalidate at given interval\n props: removeUndefineds({\n ...page,\n messages: i18nMessages,\n pageBlocks,\n menuData,\n title: titleConfig?.value || page?.title\n })\n };\n } catch (err) {\n Logger.error(`[Page::staticProps] Failed to generate page '${slug}' at '${locale}'. Reason: `, err);\n\n return { notFound: true };\n }\n}\n\nfunction removeUndefineds(obj) {\n // cleaning an array\n if (Array.isArray(obj)) {\n const arr = obj;\n const newArr = [];\n arr.forEach((val, key) => {\n if (typeof val === 'undefined') {\n return;\n }\n if (val === Object(val)) {\n // this is an object, not a regula value\n newArr[key] = removeUndefineds(val);\n } else {\n newArr[key] = val;\n }\n });\n return newArr;\n }\n\n // cleaning an object\n const newObj = {};\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (typeof val === 'undefined') {\n return;\n }\n if (val === Object(val)) {\n // this is an object, not a regula value\n newObj[key] = removeUndefineds(val);\n } else {\n newObj[key] = val;\n }\n });\n return newObj;\n}\n","import React, { createContext, useReducer } from 'react';\n\nconst DEFAULT_VALUES = {\n status: 'pending',\n data: {\n // ping: 'wating'\n }\n};\n\n// The reducer is used to update values for the context\nconst reducer = (state, action) => {\n switch (action.type) {\n case \"reset\":\n return DEFAULT_VALUES;\n case \"update\":\n return { ...state, ...action.data };\n default:\n return state;\n }\n};\n\n// CREATING THE CONTEXT\nconst PageContext = createContext(DEFAULT_VALUES);\n\n// CREATING THE PROVIDER\nexport const PageProvider = (props) => {\n\n const { children } = props;\n\n let [state, dispatch] = useReducer(reducer, DEFAULT_VALUES);\n let value = { state, dispatch };\n\n return {children};\n};\n\nexport { PageContext };\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/[[...slug]]\",\n function () {\n return require(\"private-next-pages/[[...slug]].js\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/[[...slug]]\"])\n });\n }\n "],"names":["$","toObject","lengthOfArrayLike","toIntegerOrInfinity","addToUnscopables","target","proto","at","index","O","this","len","relativeIndex","k","undefined","uncurryThis","requireObjectCoercible","toString","fails","charAt","forced","S","length","ContentBlockType","findByPage","getVehicleInfoForAccessory","getCategoriesAccessory","getAllDealers","getAllDealersProductId","getAllDealersEssential","getAllDealersForForms","findByFilter","anchor","name","label","help","type","control","defaultValue","spacingTopMeta","options","spacingBottomMeta","spacingTopBottom","bgColorMeta","buttonColorMeta","props","key","value","text","centerContentMeta","formTitle","formDescription","formAttractingMedia","formTitleSuccess","formContentSuccess","formLinkSuccess","formLinkTitleSuccess","formTitleError","formContentError","formHeaderSpacing","kindOfContent","autoPlay","muted","loop","controls","AccessoriesList","component","icon","PASSIVE","multiple","settings","properties","contents","extra","dataFetcher","content","VehicleQuery","locale","context","data","vehicles","models","filteredModels","reduce","acc","model","versions","filter","version","status","vehicleCategories","categoriesModels","Accessory","accessoryCategories","categories","disclaimer","description","ActionBannerItem","maxLength","titleOnly","removeMask","containerSize","title","bannerImage","desktop","media","url","mobile","mediaMob","cta","callToActions","action","link","ArmoredForm","productId","Error","Vehicle","vehiclesByModels","Dealers","dealers","dealersByLocation","allowedModels","modelSet","split","map","String","trim","toLocaleLowerCase","includes","push","armored","mainVersion","armoured","vehicleExternalId","prodYear","modelYear","year","katashiki","suffixCode","internalColor","defaultInternalColorCode","code","externalColor","vehicleColors","color","toLowerCase","titleSuccess","contentSuccess","titleError","contentError","headerSpacingTop","headerSpacingBotton","attractingMedia","BackToTop","BannerCarousel","autoplay","sliderData","BannerListSection","sectionTitle","section","showTitle","bgColor","layoutType","banners","mediaType","alt","contentLayoutType","BreadcrumbList","linkLabel","i18nMessages","main_navigation","previous_page","params","breadcrumb","breadcrumbList","ButtonsSection","buttonsList","pagePath","page","fullpath","CardsList","buttonColor","callToAction","callToActionLabel","callToActionTarget","cardsData","isUppercase","links","getStatesFromDealers","Array","isArray","resultStates","flatMap","dealer","address","state","toUpperCase","sort","Set","ContactForm","required","mainVersionName","mainVersionCode","clientVehicleId","mainVersionExternalColor","states","headerSpacing","contactFormType","ContentDivider","ContentMediaSection","mediaList","featuredMedia","shift","CarDetailsActionCard","DealersList","Dealer","Disclaimer","editorContent","photoList","DownloadDocList","downloadDocList","linkUrl","EmailDreamCarForm","src","contestId","selectedContest","registrationLink","registrationLinkLabel","EventsForm","selectedEvent","spacingBottom","spacingTop","FaqSection","faqContent","items","FindDealers","forEach","item","coordLat","coordLng","position","lat","parseFloat","lng","listStates","GalleryDownload","galleryData","urlHighResolution","IframeSection","InterestForm","allowedDealers","dealerSet","price","comments","InterestFormManager","InteractiveVideoContent","buttonLabel","containerVideoSize","contentText","showDivider","mediaVideo","LgpdForm","getServiceItemCategoriesByPage","findAll","MaintenancePlan","serviceRequestParams","pageId","id","textTranform","Service","serviceByPage","serviceItemCategories","MediaBannerAction","textContent","actionButton","MediaSection","centralizeItem","isFullContentSize","MissingBlock","missingComponent","Notification","titleNotification","contentNotification","typeNotification","enableAutoClose","autoCloseTime","getNewsTotal","findNews","findNewsCategory","findOneNews","newsByPage","searchNewsByFilters","newsByIds","NewsBanner","getConfig","serverRuntimeConfig","PRODUCT_ID","newsIds","selectedNews","newsData","query","News","response","orderedNewsData","a","b","indexOf","OffersForm","OffersPanel","RecallBanner","RecallBannerForm","getAllRecalls","getRecallByChassiOrBoardViaDetran","getRecallVehiclesByChassiOrPatent","recallFromTasaApiByChassis","recallFromTDVApi","RecallForm","Recall","recalls","RecallFormCustom","RecoverPasswordForm","RegistrationForm","RepentanceForm","RichTextSection","SaleUsedForm","Search","titleNoResults","textNoResults","SecondaryNavigation","showSectionNavigation","pageTitle","activeIcon","inactiveIcon","colorActiveLink","ServiceOffers","installmentsNumber","tenant","tenantData","installmentMaintenanceClosePrice","variables","console","error","SimpleBanner","logo","SpecialSalesForm","disabilitiesPeopleAllowedModels","diplomatsAllowedModels","fleetsAllowedModels","disabilitiesPeopleModelSet","diplomatsModelSet","fleetsModelSet","disabilitiesPeopleModels","diplomatsModels","fleetsModels","TabsListButtons","TabsWrapper","getVehiclesByCategoryData","carCategoriesData","WaveDivider","extras","orientation","DreamCarForm","delivery","linkButtonExpiredEvent","labelButtonExpiredEvent","titleExpiredEvent","contentExpiredEvent","linkTitleSuccess","linkSuccess","SimplifiedContactForm","formType","RecallData","searchSectionTitle","filterSectionTitle","DirectSalesForm","buildComponent","children","CustomComponent","components","style","scrollMarginTop","builded","tuple","idx","GenericPage","router","useRouter","useEffect","attrMParams","getAttrMParameter","sessionStorage","Object","keys","values","some","setItem","JSON","stringify","isFallback","display","alignItems","justifyContent","height","background","pageBlocks","menuData","DEFAULT_VALUES","reducer","PageContext","createContext","PageProvider","useReducer","dispatch","Provider","window","__NEXT_P"],"sourceRoot":""}